Arch Linuxインストールメモ (archlinux-2012.11.01)
######################################################################
※2013/2/15追記
archlinux-2013.02.01のインストール手順をこちらに書きました。
Arch Linuxインストールメモ (archlinux-2013.02.01)
http://extrea.hatenablog.com/entry/2013/02/15/123721
######################################################################
以下、旧文
ArchLinux 2012.11.01 インストールメモです。
なんとかsystemdの設定にも慣れてきたところ・・・rc.confが恋しい
・使用メディア
ISO: archlinux-2012.11.01-dual.iso
・メディアからのブート
上記イメージよりブート。
今回は64bit版を選択する。
ブート完了後、インストール用のライブOSが起動したところ。
(rootで自動ログインした状態)
事前準備として、まずは日本語キーボードを使えるようにする。
# loadkeys jp106
・インストール準備
[ Network ]
手動設定を行う。
(DHCP環境なら特に設定不要)
iproute2コマンドでの設定例 # ip addr show # ip link set eth0 up # ip addr add 10.0.18.204/24 dev eth0 # ip route add default via 10.0.18.254 dev eth0 # vi /etc/resolv.conf # cat /etc/resolv.conf ### Google Public DNS nameserver 8.8.8.8 nameserver 8.8.4.4 # ping google.com PING google.com (173.194.38.78) 56(84) bytes of data. 64 bytes from nrt19s17-in-f14.1e100.net (173.194.38.78): icmp_req=1 ttl=46 time=17.2 ms 64 bytes from nrt19s17-in-f14.1e100.net (173.194.38.78): icmp_req=2 ttl=46 time=21.9 ms 64 bytes from nrt19s17-in-f14.1e100.net (173.194.38.78): icmp_req=3 ttl=46 time=14.0 ms ^C --- google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 14.006/17.750/21.997/3.285 ms
ついでに、リモートから作業できるようにsshdを起動する。
# passwd # rootユーザのパスワードを設定 # systemctl start sshd.service
[ Disk Partition ]
ディスクパーティションの設定。
本環境では、/dev/sdaをインストール先HDDとして使用する。
Disk Size: 15GB
device | mountpoint | size |
---|---|---|
/dev/sda1 | /boot | 100MB |
/dev/sda2 | swap | 512MB |
/dev/sda3 | /var | 5000MB |
/dev/sda4 | / | 残り全て |
# fdisk /dev/sda # fdisk -l /dev/sda Disk /dev/sda: 16.1 GB, 16106127360 bytes 255 heads, 63 sectors/track, 1958 cylinders, total 31457280 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xbd047ddc Device Boot Start End Blocks Id System /dev/sda1 * 2048 206847 102400 83 Linux /dev/sda2 206848 1255423 524288 82 Linux swap / Solaris /dev/sda3 1255424 11741183 5242880 83 Linux /dev/sda4 11741184 31457279 9858048 83 Linux
※bootパーティションへbootフラグの付与を忘れない事
※fdiskの使い方は このあたりを参照の事。
[ Format ]
/(root),/boot,/varパーティションをext4でフォーマットする。
# mkfs.ext4 /dev/sda1 # mkfs.ext4 /dev/sda3 # mkfs.ext4 /dev/sda4 #
[ Mount ]
先ほど作成した/dev/sdaの各パーティションを、ライブOSの/mnt配下にマウント。
# mount /dev/sda4 /mnt # rootパーティションのマウント # mkdir -p /mnt/{boot,var} # /boot,/var用マウントポイント作成 # mount /dev/sda1 /mnt/boot # /bootパーティション # mount /dev/sda3 /mnt/var # /varパーティション # df -hT Filesystem Type Size Used Avail Use% Mounted on ~ 中略 ~ /dev/sda4 ext4 9.4G 270M 8.7G 3% /mnt /dev/sda1 ext4 96M 14K 91M 1% /mnt/boot /dev/sda3 ext4 5.0G 203M 4.6G 5% /mnt/var
・システムのインストール
[ mirrorlist ]
一番近いミラー先を使用できるように、リストの先頭に
Score値0.1にて、日本のレポジトリを追記。
# cp -p /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.org # vi /etc/pacman.d/mirrorlist # diff -wb /etc/pacman.d/mirrorlist.org /etc/pacman.d/mirrorlist 6a7,8 > ## Score: 0.1, Japan > Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
[ System Install ]
pacstrapスクリプトにて必要なパッケージグループを指定し、インストールを行う。
今回はGUI不要の為、基本的なパッケージグループのみ選択。
- base
- base-devel
# pacstrap /mnt base base-devel ==> Creating install root at /mnt ==> Installing packages to /mnt warning: database file for 'core' does not exist warning: database file for 'extra' does not exist warning: database file for 'community' does not exist :: Synchronizing package databases... core 107.7 KiB 962K/s 00:00 [######################################] 100% extra 1408.3 KiB 2.12M/s 00:01 [######################################] 100% community 1766.5 KiB 1532K/s 00:01 [######################################] 100% ~ 中略 ~ % (130/132) installing make [######################################] 100% (131/132) installing patch [######################################] 100% Optional dependencies for patch ed: Interpret the patch as an ed script; for patch -e functionality(deprecated) (132/132) installing pkg-config [######################################] 100% #
[ Bootloader ]
Bootloaderは以下より選択する。
- grub-bios
- grub-efi-x86_64
- syslinux
# pacstrap /mnt grub-bios #
・システム設定
[ fstab ]
# genfstab -p /mnt >> /mnt/etc/fstab #
[ chroot ]
以降は、新規インストールしたシステムにchrootして作業する。
# arch-chroot /mnt #
[ Hostname ]
適宜設定。
# echo "arch03.localdomain" >> /etc/hostname #
[ Timezone ]
BIOSの時間をローカルタイムにする場合は、adjtimeファイルを作成する
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # # vi /etc/adjtime # cat /etc/adjtime 0.0 0.0 0.0 0 LOCAL
[ Locale ]
# echo "LANG=ja_JP.UTF-8" >> /etc/locale.conf # # cp -p /etc/locale.gen /etc/locale.gen.org # vi /etc/locale.gen # diff -wb /etc/locale.gen.org /etc/locale.gen 278c278 < #ja_JP.UTF-8 UTF-8 --- > ja_JP.UTF-8 UTF-8 # # locale-gen Generating locales... ja_JP.UTF-8... done Generation complete.
[ ram image ]
# mkinitcpio -p linux #
[ grub install ]
# grub-install --target=x86_64-pc --boot-directory=/boot --recheck --debug /dev/sda # grub-mkconfig -o /boot/grub/grub.cfg #
[ Keyboard ]
# /etc/vconsole.conf # cat /etc/vconsole.conf KEYMAP=jp106
[ resolv.conf ]
# vi /etc/resolv.conf # cat /etc/resolv.conf nameserver 8.8.8.8 nameserver 8.8.4.4
[ root passwort]
rootユーザーのパスワードを設定。
# passwd Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
・swapの設定
# fdisk -l # mkswap /dev/sda2 # echo "/dev/sda2 swap swap defaults 0 0" >> /etc/fstab #
・再起動
chroot環境より抜けインストール用ディレクトリをunmount後、システム再起動。
# exit # umount /mnt/{boot,var,} # reboot #
・初期設定
必要最低限のパッケージを追加する。
pacmanコマンドが使えるよう、まずはネットワーク周りを手動で設定する。
(ISOブート時と同じく、DHCP環境なら設定不要。)
# ip addr show # ip link set eth0 up # ip addr add 10.0.18.204/24 dev eth0 # ip route add default via 10.0.18.254 dev eth0 # # ping google.com PING google.com (173.194.38.78) 56(84) bytes of data. 64 bytes from nrt19s17-in-f14.1e100.net (173.194.38.78): icmp_req=1 ttl=46 time=17.2 ms 64 bytes from nrt19s17-in-f14.1e100.net (173.194.38.78): icmp_req=2 ttl=46 time=21.9 ms 64 bytes from nrt19s17-in-f14.1e100.net (173.194.38.78): icmp_req=3 ttl=46 time=14.0 ms ^C --- google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 14.006/17.750/21.997/3.285 ms
[ syslog-ng,openssh ]
syslogとsshd。ついでにインストール済みのcornも自動起動設定
# pacman -Sy openssh syslog-ng # systemctl enable syslog-ng.service # systemctl start syslog-ng.service # # systemctl enable sshd.service # systemctl start sshd.service # # systemctl enable cronie.service # systemctl start cronie.service #
[ net-tools,dnsutils ]
ifconfig,netstat,digなどのネットワーク系コマンドツール
# pacman -Sy net-tools dnsutils #
[ sysstat,mlocate ]
sarなどモニタリングツールおよびlocateコマンド
# pacman -Sy sysstat mlocate #
[ rc.local ]
ちょっとした処理で、systemdをいじるのが手間なので、rc.local相当を作成しておく
# vi /etc/rc.local # cat /etc/rc.local --- #!/bin/bash touch /tmp/hoge # test --- # # chmod +x /etc/rc.local # # vi /usr/lib/systemd/system/rc-local.service # cat /usr/lib/systemd/system/rc-local.service [Unit] Description=/etc/rc.local Compatibility Wants=network.target [Service] Type=oneshot ExecStart=/etc/rc.local TimeoutSec=0 #StandardInput=tty RemainAfterExit=yes [Install] WantedBy=multi-user.target # ln -s /usr/lib/systemd/system/rc-local.service /etc/systemd/system/multi-user.target.wants/ # systemctl --system daemon-reload # systemctl enable rc-local.service
[ 固定IP設定 ]
# vi /etc/conf.d/network # cat /etc/conf.d/network interface=eth0 address=10.0.18.204 netmask=24 broadcast=10.0.18.255 gateway=10.0.18.254 # # vi /usr/lib/systemd/system/network.service # cat vi /usr/lib/systemd/system/network.service [Unit] Description=Network Connectivity Wants=network.target Before=network.target [Service] Type=oneshot RemainAfterExit=yes EnvironmentFile=/etc/conf.d/network ExecStart=/sbin/ip link set dev ${interface} up ExecStart=/sbin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev ${interface} ExecStart=/sbin/ip route add default via ${gateway} [Install] WantedBy=multi-user.target # ln -s /usr/lib/systemd/system/network.service /etc/systemd/system/multi-u ser.target.wants/ # systemctl enable network.service #
・Yaourtのインストール
AURを使用する場合。公式パッケージ(pacman)で事足りる場合は特に不要。
# pacman -Sy diffutils gettext yajl curl wget # # cd /usr/local/src # wget https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz # tar xvzf package-query.tar.gz # # cd package-query # makepkg --asroot ; echo $? # pacman -U package-query-1.0.1-1-i686.pkg.tar.xz # # cd ../ # wget https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz # tar xvzf yaourt.tar.gz # # cd yaourt # makepkg --asroot ; echo $? # pacman -U yaourt-1.1-1-any.pkg.tar.xz #
以上
・参照
https://wiki.archlinux.org/index.php/Installation_Guide
https://wiki.archlinux.org/index.php/Systemd
https://wiki.archlinux.org/index.php/Yaourt