Difference between revisions of "Beginners' guide"
m (→Install and configure a bootloader: this considerably reduces the output. If someone has more than one drive, the full output (top level where /dev/sda is) won't fit on the screen and they probably won't even know that Shift+PageUp can scroll up) |
(Link to UEFI_Bootloaders page) |
||
Line 646: | Line 646: | ||
* run {{ic|arch-chroot /mnt}} | * run {{ic|arch-chroot /mnt}} | ||
and then proceed with the instructions bellow.}} | and then proceed with the instructions bellow.}} | ||
+ | |||
+ | {{Note|For UEFI motherboards read [[UEFI_Bootloaders]] page.}} | ||
==== Syslinux ==== | ==== Syslinux ==== | ||
− | {{Note|Syslinux does not yet support [[UEFI]] | + | {{Note|Syslinux does not yet support [[UEFI]].}} |
Install the {{Pkg|syslinux}} package and edit {{ic|syslinux.cfg}} to point to the right root partition. This step is vital. If it points to the wrong partition, Arch Linux will not boot. | Install the {{Pkg|syslinux}} package and edit {{ic|syslinux.cfg}} to point to the right root partition. This step is vital. If it points to the wrong partition, Arch Linux will not boot. | ||
Line 682: | Line 684: | ||
{{Note|In rare cases you may need to use {{ic|grub-efi-i386}} instead; on older macs for instance, where the bootloader only supports loading 32 bit modules, even though the CPU is 64 bit. This is because Apple hardware uses some kind of mixture between UEFI v1.x and v2.x.}} | {{Note|In rare cases you may need to use {{ic|grub-efi-i386}} instead; on older macs for instance, where the bootloader only supports loading 32 bit modules, even though the CPU is 64 bit. This is because Apple hardware uses some kind of mixture between UEFI v1.x and v2.x.}} | ||
+ | |||
+ | {{Note|GRUB(2) is not the only UEFI bootloader available. For other bootloaders read [[UEFI_Bootloaders]] page.}} | ||
To prevent a (harmless) error message at boot time: | To prevent a (harmless) error message at boot time: |
Revision as of 16:27, 18 August 2012
zh-CN:Beginners' Guide/Installation
Contents
- 1 Installation
- 1.1 Changing the keymap
- 1.2 Setup network in the live installation environment
- 1.3 Prepare hard drive
- 1.4 Configure block devices, filesystems, and mountpoints
- 1.5 Mount the partitions
- 1.6 Select installation mirror
- 1.7 Install the base system
- 1.8 Generate fstab
- 1.9 Chroot into system
- 1.10 Configure the system
- 1.11 Configure the network
- 1.12 Create an initial ramdisk environment
- 1.13 Install and configure a bootloader
- 1.14 Root password
- 1.15 Unmount the partitions and reboot
Installation
After booting, the installation media automatically logs in as root and uses a US keyboard layout.
Changing the keymap
If you have a non-US keyboard layout you can interactively choose your keymap/console font with the command:
# loadkeys layout
where layout is your keyboard layout such as fr
, uk
or be-latin1
Keymaps are available for many countries and keyboard types. The keymap files can be found in /usr/share/kbd/keymaps/
(you can omit the keymap path and file extension when using loadkeys
).
Setup network in the live installation environment
The installer need network connection to download and install packages. So network have to be setup first.
Automatic setup
The installer will try to automatically configure a wired connection if available. You may check this was successful by using /bin/ping
:
# ping -c 3 www.google.com
If you get an answer that looks like this:
PING www.l.google.com (74.125.132.105) 56(84) bytes of data. 64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=1 ttl=50 time=17.0 ms 64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=2 ttl=50 time=18.2 ms 64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=3 ttl=50 time=16.6 ms --- www.l.google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 16.660/17.320/18.254/0.678 ms
then the network and Internet access have been properly configured. You may continue to #Prepare_hard_drive. Otherwise, if you get:
ping: unknown host www.google.com
you will need to set up the network manually, as explained below.
Set up a wired connection
Follow this procedure if your computer is connected to an Ethernet network. In most cases, you will have one interface, called eth0
. If you have additional ethernet interfaces (which may be additional cards or integrated to the motherboard), their name will follow the sequence eth1
, ethX
,...
Dynamic IP (DHCP)
Assuming a wired Ethernet connection and access to a DHCP server (e.g. using a router), run:
# dhcpcd
to get a lease.
If you have several interfaces (such as several Ethernet cards), you may specify the interface with dhcpcd <interface>
, e.g:
# dhcpcd eth0
Verify your connection as explained above and if successful jump to #Prepare_hard_drive.
Static IP
If you do not have access or are not using DHCP, you need to assign a static IP address. You need to know these settings:
- Static IP address,
- Subnet mask,
- Gateway's IP address,
- Name servers' (DNS) IP addresses,
- Domain name (unless a local LAN, in which case you can make it up).
Activate the connected ethernet interface, e.g. for eth0
:
# ip link set eth0 up
Add the address:
# ip addr add <ip address>/<subnetmask> dev <interface>
For example:
# ip addr add 192.168.1.2/24 dev eth0
For more options, see: man ip
Add your gateway like so:
# ip route add default via <ip address>
(Substitute your own gateway's IP address)
For example:
# ip route add default via 192.168.1.1
Edit your /etc/resolv.conf
like this, substituting your name servers' IP addresses and your local domain name:
nameserver 61.23.173.5 nameserver 61.95.849.8 search example.com
nameserver
lines.Setup wireless network
Follow this procedure if you need wireless connectivity (WiFi) during the installation process.
The wireless drivers and utilities are now available to you in the live environment of the installation media. A good knowledge of your wireless hardware will be of key importance to successful configuration. Note that the following quick-start procedure executed at this point in the installation will initialize your wireless hardware for use in the live environment of the installation media. These steps (or some other form of wireless management) must be repeated from the actual installed system after booting into it.
Also note that these steps are optional if wireless connectivity is unnecessary at this point in the installation; wireless functionality may always be established later.
wlan0
for the interface and linksys
for the ESSID. Remember to change these values according to your setup.The basic procedure will be:
- (optional) Identify the wireless interface:
# lspci | grep -i net
or, if using a USB adapter:
# lsusb
- Ensure udev has loaded the driver, and that the driver has created a usable wireless kernel interface with
/usr/sbin/iwconfig
:
# iwconfig
lo no wireless extensions. eth0 no wireless extensions. wlan0 unassociated ESSID:"" Mode:Managed Channel=0 Access Point: Not-Associated Bit Rate:0 kb/s Tx-Power=20 dBm Sensitivity=8/0 Retry limit:7 RTS thr:off Fragment thr:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
wlan0
is the available wireless interface in this example.
- Bring the interface up with:
# ip link set wlan0 up
A small percentage of wireless chipsets also require firmware, in addition to a corresponding driver. If the wireless chipset requires firmware, you are likely to receive this error when bringing the interface up:
# ip link set wlan0 up
SIOCSIFFLAGS: No such file or directory
If unsure, invoke /usr/bin/dmesg
to query the kernel log for a firmware request from the wireless chipset.
Example output from an Intel chipset which requires and has requested firmware from the kernel at boot:
$ dmesg | grep firmware
firmware: requesting iwlwifi-5000-1.ucode
If there is no output, it may be concluded that the system's wireless chipset does not require firmware.
/usr/lib/firmware
in the live environment (on CD/USB stick) but must be explicitly installed to your actual system to provide wireless functionality after you reboot into it! Package installation is covered later in this guide. Ensure installation of both your wireless module and firmware before rebooting! See Wireless Setup if you are unsure about the requirement of corresponding firmware installation for your particular chipset. This is a very common error.- If the ESSID has been forgotten or is unknown, use
iwlist <interface> scan
to scan for nearby networks:
# iwlist wlan0 scan
Cell 01 - Address: 04:25:10:6B:7F:9D Channel:2 Frequency:2.417 GHz (Channel 2) Quality=31/70 Signal level=-79 dBm Encryption key:off ESSID:"dlink" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s 36 Mb/s; 48 Mb/s; 54 Mb/s
- If using WPA encryption:
Using WPA encryption requires that the key be encrypted and stored in a file, along with the ESSID, to be used later for connection via wpa_supplicant
. Thus, a few extra steps are required:
For the purpose of simplifying and backup, rename the default wpa_supplicant.conf
file:
# mv /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.original
Using wpa_passphrase
, provide your wireless network name and WPA key to be encrypted and written to /etc/wpa_supplicant/wpa_supplicant.conf
.
The following example encrypts the key "my_secret_passkey" of the "linksys" wireless network, generates a new configuration file (/etc/wpa_supplicant/wpa_supplicant.conf
), and subsequently redirects the encrypted key, writing it to the file:
# wpa_passphrase linksys "my_secret_passkey" > /etc/wpa_supplicant/wpa_supplicant.conf
bash: event not found
error, it may be due to special characters (e.g. !
) used in your wireless network name. In that case try the following:
# tee /etc/wpa_supplicant/wpa_supplicant.conf < <(wpa_passphrase linksys "passphrase")
And if you are still having problems because of special characters in your network name or passphrase, you may try the following, where (~/mykey
) is a temporary text file containing only your passphrase:
# cat ~/mykey | wpa_passphrase linksys > /etc/wpa_supplicant/wpa_supplicant.confAlso, for security reasons, you may want to remove this file (
~/mykey
) after you setup your (/etc/wpa_supplicant.conf
) file.Check WPA Supplicant for more information and troubleshooting.
/etc/wpa_supplicant/wpa_supplicant.conf
is stored in plain text format. This is not risky in the installation environment, but when you reboot into your new system and reconfigure WPA, remember to change the permissions on /etc/wpa_supplicant/wpa_supplicant.conf
(e.g. chmod 0600 /etc/wpa_supplicant/wpa_supplicant.conf
to make it readable by root only).- Associate your wireless device with the access point you want to use. Depending on the encryption (none, WEP, or WPA), the procedure may differ. You need to know the name of the chosen wireless network (ESSID).
Encryption | Command |
---|---|
No Encryption | iwconfig wlan0 essid "linksys"
|
WEP w/ Hex Key | iwconfig wlan0 essid "linksys" key "0241baf34c"
|
WEP w/ ASCII passphrase | iwconfig wlan0 essid "linksys" key "s:pass1"
|
WPA | wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
|
/etc/rc.d/dbus start
and /etc/rc.d/networkmanager start
, list available connections with nmcli con list
and use a connection with nmcli con up id NAME
where NAME is the name of the connection.- After utilizing the appropriate association method outlined above, wait a few moments and confirm you have successfully associated to the access point before continuing, e.g.:
# iwconfig wlan0
Output should indicate the wireless network is associated with the interface.
- Request an IP address with
/sbin/dhcpcd <interface>
, e.g.:
# dhcpcd wlan0
You should now have a working network connection. If you do not, check the detailed Wireless Setup page.
Set up Direct Modem Connection
xDSL (PPPoE)
Follow this procedure if you have a modem or router in bridge mode to connect to your ISP.
Invoke:
# pppoe-setup
If everything is well configured in the end, you can connect to your ISP with:
# pppoe-start
Analog Modem, ISDN
See Direct Modem Connection for detailed instructions.
Proxy Server
If you are behind a proxy server, you will need to export the http_proxy
and ftp_proxy
environment variables. Click here for more information.
Test network connection
Lastly, ensure you can route using /bin/ping
:
# ping -c 3 www.google.com
PING www.l.google.com (74.125.132.105) 56(84) bytes of data. 64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=1 ttl=50 time=17.0 ms 64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=2 ttl=50 time=18.2 ms 64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=3 ttl=50 time=16.6 ms --- www.l.google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 16.660/17.320/18.254/0.678 ms
Prepare hard drive
If you have already partitioned your hard disk, verify current disk identities and layout by invoking /sbin/fdisk
with the -l
(lower-case L) switch.
At the root prompt enter:
# fdisk -l
Take note of the disk(s) and/or partition(s) to utilize for the Arch installation. Each partition is identified with a number suffix. Example: sda1
specifies the first partition of a drive while sda
designates the entire drive. You may now proceed to Configure block devices, filesystems, and mountpoints.
The remainder of this section shows an example configuration for a beginner's Arch installation and uses the fdisk partitioning tool. You are not required to use this configuration or this tool; it is presented here only as an example.
For more information on partitioning your hard disk, see Partitioning.
For more information on possible file system types, see File Systems.
Manually partition hard drives
gdisk
supports only GPT partition tables, cfdisk
supports only MBR partition tables and parted
supports both. This example uses cfdisk, but can also easily be followed substituting in gdisk for cfdisk to allow use of the newer GPT partitioning.Use cfdisk to open the selected target disk for manual partitioning (if you have an SSD drive other choices like gdisk or GNU Parted will be needed). This example uses the first hard disk, designated sda:
# cfdisk /dev/sda
The example system will contain a 15GB root (/
) partition, a 1GB swap
partition, and a /home
partition for the remaining disk space. It is emphasized again that partitioning is a personal choice and this example is only for illustration.
Choose New -> 'Primary' and enter the desired size (15.44 GB in this example) for the root (/
) filesystem. The partition will be put at the beginning of the disk. Select the Type and designate it as 83 Linux
. The created /
partition will appear as sda1
. Thereafter select "Bootable" to flag root as bootable.
Next, create a second partition for swap. Select an appropriate size (~1 GB here) and specify the Type as 82 (Linux swap / Solaris)
. The created swap partition will appear as sda2
.
The remaining space is used to create a third partition for the /home
directory. Identify it as a primary partition and set the size. Select the Type as 83 Linux
. The created /home
partition will appear as sda3
.
This is how the example will look:
Name Flags Part Type FS Type [Label] Size (MB) ------------------------------------------------------------------------- sda1 Boot Primary Linux 15440 #root sda2 Primary Linux swap / Solaris 1024 #swap sda3 Primary Linux 133000 #/home
Be aware that this operation will destroy data on your disk so double check all of your work and make sure you are happy with the partition sizes as well as the partition table layout before continuing. If you would like to start over, you can simply select Quit to quit without saving changes and then restart cfdisk.
Once satisfied choose Write to finalize and write the partition table to the disk. After the partition table is written it will automatically exit cfdisk.
For more information on partitioning your hard disk, see Partitioning.
Configure block devices, filesystems, and mountpoints
Use the mkfs
utility to format the partitions into filesystems. In this example configuration, we are using the ext4 filesystem for both root and home partitions.
# mkfs.ext4 /dev/sda1 # mkfs.ext4 /dev/sda3
Format and activate the swap partition:
# mkswap /dev/sda2 && swapon /dev/sda2
For more information on possible file system types, see File Systems.
Mount the partitions
Mount the root partition on /mnt
.
# mount /dev/sda1 /mnt
Create a directory for the /home partition and mount it:
# mkdir /mnt/home && mount /dev/sda3 /mnt/home
Select installation mirror
Before installing, you may want to edit /etc/pacman.d/mirrorlist
such that your preferred mirror is first. This copy of the mirrorlist will be installed on your new system by pacstrap
as well, so it's worth getting it right.
Install the base system
The base system is installed using the pacstrap script. A minimal system requires the base package group; also installing the base-devel package group at this time is highly recommended. If you require other packages at this time, simply add them to the pacstrap command.
# pacstrap /mnt base base-devel
- base: Software packages from the [core] repo to provide the minimal base environment.
- base-devel: Extra tools from [core] such as
make
, andautomake
. Most beginners should choose to install it, as it will likely be needed to expand your new system. The base-devel group will be required to install software from the Arch User Repository.
This will give you a basic Arch system. Other packages can be installed later using pacman.
Generate fstab
Generate an fstab file with the following command. (If you prefer to use UUIDs or labels, add the -U
or -L
option, respectively.)
# genfstab -p /mnt >> /mnt/etc/fstab
/mnt/etc/fstab
) before continuing. If you encounter errors running genfstab or later in the install process, do not run genfstab again; just edit the fstab file. Also, only the "/" partition needs "1" for the last field. Everything else should have "2" or "0" (see #Field definitions).Chroot into system
Next we chroot into our newly installed system.
# arch-chroot /mnt
Configure the system
At this stage of the installation, you will configure the primary configuration files of your Arch Linux base system.
Configuration files
/etc/rc.conf
is the configuration file for Arch's initscripts, and in the past used to also contain configurations for other parts of the system. Unless you are using an alternate init system like systemd, /etc/rc.conf
configures which daemons to start during boot-up and some networking and storage information.
/etc/rc.conf
for system configuring still works (for now) with the default init system, but the new configuration files take precedence and using them is recommended. The new files will also work for configuring systemd.Configuration | Configuration file(s) | Legacy /etc/rc.conf section
|
---|---|---|
Hostname | /etc/hostname
|
NETWORKING
|
Console fonts and Keymap | /etc/vconsole.conf
|
LOCALIZATION
|
Locale | /etc/locale.conf
|
LOCALIZATION
|
Timezone | /etc/timezone
|
LOCALIZATION
|
Hardware clock | /etc/adjtime
|
LOCALIZATION
|
Kernel modules | /etc/modules-load.d/
|
HARDWARE
|
Daemons | /etc/rc.conf
|
DAEMONS
|
Wired Network | /etc/rc.conf
|
NETWORKING
|
Configuration files can simply be created if they do not exist already and you wish to change the defaults. During this procedure you use the editor nano. For example to edit your hostname file in /etc/hostname
you'll type:
# nano /etc/hostname
you press Template:Keypress to either save changes or close the file. When prompted to save changes, press Template:Keypress or Template:Keypress, and Template:Keypress to write the file
Hostname
Add your hostname in /etc/hostname
. Example:
myhostname
Set it to your liking. This is the name of your computer.
Add also your hostname in /etc/hosts
, coinciding with the one specified in /etc/hostname
as an alias, so that it looks like this:
127.0.0.1 localhost.localdomain localhost myhostname ::1 localhost.localdomain localhost myhostname
If you use a static IP, add another line using the syntax: <static-IP> <hostname.domainname.org> <hostname> e.g.:
192.168.1.100 myhostname.domain.org myhostname
/etc/hosts
aliases for hosts on your network, and/or on the Web, e.g.:
192.168.1.90 media 192.168.1.88 dataThe above example would allow you access a media and data server on your network by name and without the need for typing out their respective IP addresses.
Console fonts and keymap
Edit /etc/vconsole.conf
.
- KEYMAP
- The available keymaps are in
/usr/share/kbd/keymaps
. Please note that this setting is only valid for your TTYs, not any graphical window managers or X. - FONT
- Available alternate console fonts reside in
/usr/share/kbd/consolefonts/
. The default (blank) is safe. - FONT_MAP
- Defines the console map to load with the setfont program at boot. Possible maps are found in
/usr/share/kbd/consoletrans
, if needed. The default (blank) is safe.
Example:
KEYMAP=us FONT= FONT_MAP=
man vconsole.conf
.Timezone
Available time zones and subzones can be found in the /usr/share/zoneinfo/<Zone>/<SubZone>
directories.
To view the available <Zone>, check the directory /usr/share/zoneinfo/
:
# ls /usr/share/zoneinfo/
Similarly, you can check the contents of directories belonging to a <SubZone>:
# ls /usr/share/zoneinfo/Europe
Create a symbolic link /etc/localtime
to your zone file /usr/share/zoneinfo/<Zone>/<SubZone>
using this command:
# ln -s /usr/share/zoneinfo/<Zone>/<SubZone>
/etc/localtime
Example:
# ln -s /usr/share/zoneinfo/Europe/Minsk /etc/localtime
If you are using systemd's timedated, you might wish to also edit the file /etc/timezone
and write your Zone
/Subzone
.
Example:
Europe/Minsk
Read man 5 timezone
for more options.
The need for /etc/timezone
might go away in the future [1].
Locale
Enable locales
The /usr/sbin/locale-gen
command reads from /etc/locale.gen
to generate specific locales. They can then be used by glibc and any other locale-aware program or library for rendering text, correctly displaying regional monetary values, time and date formats, alphabetic idiosyncrasies, and other locale-specific standards:
# nano /etc/locale.gen
By default /etc/locale.gen
is an empty file with commented documentation. Once edited, the file remains untouched. locale-gen
runs on every glibc upgrade, generating all the locales specified in /etc/locale.gen
.
Choose the locale(s) you need by removing the # in front of the lines you want, e.g.:
en_US.UTF-8 UTF-8
Then run:
# locale-gen
Setting up system-wide locale
Set locale preferences in /etc/locale.conf
.
Example:
/etc/locale.conf
LANG=en_US.UTF-8 LC_TIME=en_GB.UTF-8
Setting only LANG
should be enough. It acts as the default value for all other locale settings.
You can override parts of a locale using LC_*
variables – for example, setting LC_COLLATE=C
disables locale-aware sorting, but keeps all other features. You can see all LC_*
variables by running locale
.
LC_ALL
overrides all other settings. Because of that, you cannot set it from locale.conf
. It is recommended that you use LC_ALL
only when needed – do not put it in your default environment.
For the ramdisk creation that will follow later, you should now set the LANG
variable. Example:
# export LANG=en_US.UTF-8
Hardware clock time
This is set in /etc/adjtime
. Set the hardware clock mode uniformly between your operating systems on the same machine. Otherwise, they will overwrite the time and cause clock shifts (which can cause time drift correction to be miscalibrated).
You can generate /etc/adjtime
automatically by using one of the following commands.
/etc/rc.conf
is not set when using this method.- UTC (recommended)
# hwclock --systohc --utc
- localtime (discouraged) - Used by default in Windows
# hwclock --systohc --localtime
Setting time in a Windows dual boot setup
If you are setting up a dual-boot with Windows on your system, you have two options:
- Recommended: Set both Arch Linux and Windows to use UTC (a quick registry fix is needed, see this page for instructions). Also, be sure to prevent Windows from synchronizing the time with the Internet, as it will make the hardware clock use localtime again. If you want such functionality (NTP sync), you should use ntpd on your Arch Linux installation instead.
- Not recommended: Set Arch Linux to localtime and later (in Configure the system) remove
hwclock
from theDAEMONS
array in/etc/rc.conf
(Windows will take care of hardware clock corrections).
Kernel modules
Edit /etc/modules-load.d/
to configure kernel modules to load during boot in a static list. Each configuration file is named in the style of /etc/modules-load.d/<program>.conf
. The configuration files should simply contain a list of kernel module names to load, separated by newlines. Empty lines and lines whose first non-whitespace character is #
or ;
are ignored. Example:
/etc/modules-load.d/virtio-net.conf
# Load virtio-net.ko at boot virtio-net
Daemons
Daemons are programs that run in the background, waiting for events to occur and offering services. A good example is a web server that waits for a request to deliver a page (e.g.: httpd
) or an SSH server waiting for a user login (e.g.: sshd
). While these are full-featured applications, there are also daemons whose work is not that visible. Examples are a daemon which writes messages into a log file (e.g. syslog
, metalog
), and a daemon which provides a graphical login (e.g.: gdm
, kdm
).
These programs can be added to the DAEMONS line in /etc/rc.conf
and will be started when the system boots. The DAEMONS array simply list the names of those scripts contained in /etc/rc.d/
which are to be started during the boot process, and the order in which they start.
DAEMONS=(network @syslog-ng netfs @crond)
- If a script name is prefixed with a bang (
!
), it is not run. - If a script is prefixed with an "at" symbol (
@
), it is run in the background; the startup sequence will not wait for successful completion of this daemon before continuing to the next (this may shorten system boot time). Do not background daemons that are needed by other daemons. For examplempd
depends onnetwork
, so backgroundingnetwork
may causempd
to break. - Edit this array whenever new system services are installed, if starting them automatically during boot is desired.
rc.d list
.Configure the network
You need to configure the network again, but this time for your newly installed environment. The procedure and prerequisites are very similar to the one described above, except we are going to make it persistent and automatically run at boot.
Wired Network
If you only use a single wired network connection, you can use the network daemon, a simple solution for both dynamic and static IP addressing. First, insure that the daemon is listed in the DAEMONS array:
/etc/rc.conf
DAEMONS=(... network ...)
Then configure the NETWORKING section of /etc/rc.conf
as follows, depending on your IP addressing type.
Dynamic IP (DHCP)
Assuming the network interface to activate at start is eth0, use this configuration:
interface=eth0 address= netmask= gateway=
Your DNS server addresses will be automatically filled in by the dhcpcd daemon.
Static IP
If you need to use a static IP address, use this configuration:
interface=eth0 address=192.168.0.2 netmask=255.255.255.0 broadcast=192.168.0.255 gateway=192.168.0.1
You will also need to add your name servers' (DNS) IP addresses and your local domain name to your /etc/resolv.conf
like this:
nameserver 61.23.173.5 nameserver 61.95.849.8 search example.com
Wireless network
The network daemon is not sufficient to handle Wireless networking, which requires additional configuration. You will need to install other programs to configure and manage wireless network profiles, such as netcfg. NetworkManager and Wicd are popular alternatives.
- Exit the chroot environment:
# exit
- Install the required packages:
# pacstrap /mnt wireless_tools netcfg
- If you use WPA/WPA2 wireless encryption, install:
# pacstrap /mnt wpa_supplicant wpa_actiond
- If your wireless adapter requires a firmware (as described in #Setup_wireless_network and Wireless_Setup#Drivers_and_firmware), install the package containg your firmware, e.g.:
# pacstrap /mnt zd1211-firmware
- Chroot back:
# arch-chroot /mnt
- Create a network profile for your wireless connection in the
/etc/network.d
directory:- Copy and rename a configuration template from
/etc/network.d/examples/
to/etc/network.d/mynetwork
(mynetwork being an example; the name is not a network setting and does not need to match the wireless network name (SSID)). These templates are adapted to the type of your wireless connection, such aswireless-wep
orwireless-wpa
. See Netcfg#Configuration for a list of available templates and their usage. - Set
INTERFACE
to the correct wireless interface. This can be checked withiwconfig
. - Ensure the
ESSID
andKEY
(passkey) are set correctly for wireless connections. Typos in these fields are common errors.- Note that WEP string keys (not hex keys) must be specified with a leading
s:
(e.g.KEY="s:somepasskey"
). - For WPA-Personal, it is possible to specify the passkey in plain text or as an encoded hex.
- Note that WEP string keys (not hex keys) must be specified with a leading
- Copy and rename a configuration template from
- Add
net-auto-wireless
to theDAEMONS
array in/etc/rc.conf
:
/etc/rc.conf
DAEMONS=(... net-auto-wireless ...)
And specify the desired wireless interface with the WIRELESS_INTERFACE
variable in /etc/conf.d/netcfg
:
/etc/conf.d/netcfg
WIRELESS_INTERFACE="wlan0"
It is also possible to define a list of network profiles that should be automatically connected with the AUTO_PROFILES
variable in /etc/conf.d/netcfg
. If AUTO_PROFILES
is not set, all wireless networks will be tried.
Direct Modem Connection
For xDSL, analog modem (dial-up) and ISDN, see Direct Modem Connection for detailed instructions.
Create an initial ramdisk environment
Configure /etc/mkinitcpio.conf
as needed (see mkinitcpio) and create an initial ramdisk with
# mkinitcpio -p linux
/etc/mkinitcpio.conf
file.Install and configure a bootloader
Install either Syslinux or GRUB. There is no need to install both. Syslinux is considered to be easier to understand and to configure because it has only one configuration file. In spite of GRUB's many configuration files (for which the recommended method is to re-generate the grub.cfg
file each time you change anything in one of those files), using GRUB could make it more comfortable to transition to BURG in the future, a much more customizable GRUB fork. Of course, Syslinux can also be customized. (*)
lsblk /dev/sda
to make sure it is mounted. If you don't see a /boot
mountpoint for your designated boot partition, then you should reboot the computer and from the Arch LiveCD:
- mount the root partition to
/mnt
- mount the boot partition to
/mnt/boot
- run
arch-chroot /mnt
Syslinux
Install the syslinux package and edit syslinux.cfg
to point to the right root partition. This step is vital. If it points to the wrong partition, Arch Linux will not boot.
# pacman -S syslinux # nano /boot/syslinux/syslinux.cfg
... LABEL arch ... APPEND root=/dev/sda3 ro ...
Change /dev/sda3
to reflect your root partition (if you partitioned your disk as we did in the example, your root partition is sda1). Do the same for LABEL archfallback
.
Then type the following command to install the files (-i
), mark the partition active with the boot flag (-a
), and install the MBR boot code (-m
):
# syslinux-install_update -iam
For more information on configuring and using Syslinux, see Syslinux.
GRUB
For BIOS motherboards:
# pacman -S grub-bios # grub-install --target=i386-pc --recheck /dev/sda
For UEFI motherboards:
# pacman -S grub-efi-x86_64 # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck
grub-efi-i386
instead; on older macs for instance, where the bootloader only supports loading 32 bit modules, even though the CPU is 64 bit. This is because Apple hardware uses some kind of mixture between UEFI v1.x and v2.x.To prevent a (harmless) error message at boot time:
# mkdir -p /boot/grub/locale # cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
Create the grub.cfg
file:
pacman -S os-prober
.# grub-mkconfig -o /boot/grub/grub.cfg
For more information on configuring and using GRUB, see GRUB.
Root password
Set the root password with:
# passwd
Unmount the partitions and reboot
Exit from the chroot environment:
# exit
Since the partitions are mounted under /mnt
, we use the following command to unmount them.
# umount /mnt/{boot,home,}
Exit the install, and reboot:
# reboot