Arch Linuxインストールメモ (archlinux-2013.02.01)
ArchLinux 2013.02.01 インストールメモです。 → Arch Linux 2013.09.01版を追加しました。
今回は32bit版を使用しました。
・使用メディア
ISO: archlinux-2013.02.01-dual.iso
・メディアからのブート
上記イメージよりブート。
今回は32bit版を選択する。
ブート完了後、インストール用のライブOSが起動したところ。
(rootで自動ログインした状態)
事前準備として、まずは日本語キーボードを使えるようにする。
# loadkeys jp106
・インストール準備
[ Network ]
手動設定を行う。
(DHCP環境なら特に設定不要)
iproute2コマンドでの設定例 # ip addr show # ip link show # ethデバイス名を確認 # ip link set eth0 up # ip addr add 192.168.100.100/24 dev eth0 # ip route add default via 192.168.100.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: 8GB
device | mountpoint | size |
---|---|---|
/dev/sda1 | /boot | 100MB |
/dev/sda2 | swap | 512MB |
/dev/sda3 | / | 残り全て |
# fdisk /dev/sda # fdisk -l Disk /dev/sda: 8589 MB, 8589934592 bytes, 16777216 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: 0xdf6c562f Device Boot Start End Blocks Id System /dev/sda1 * 2048 206847 102400 83 Linux /dev/sda2 206848 1255423 524288 83 Linux /dev/sda3 1255424 16777215 7760896 83 Linux
※bootパーティションへbootフラグの付与を忘れない事
※fdiskの使い方は このあたりを参照の事。
[ Format ]
/(root),/bootをext4でフォーマットする。
# mkfs.ext4 /dev/sda1 # mkfs.ext4 /dev/sda3 #
[ Mount ]
先ほど作成した/dev/sdaの各パーティションを、ライブOSの/mnt配下にマウント。
# mount /dev/sda3 /mnt # rootパーティションのマウント # mkdir -p /mnt/boot # /boot,/var用マウントポイント作成 # mount /dev/sda1 /mnt/boot # /bootパーティション # df -hT Filesystem Type Size Used Avail Use% Mounted on ~ 中略 ~ /dev/sda3 ext4 7.3G 145M 6.8G 3% /mnt /dev/sda1 ext4 97M 5.6M 87M 7% /mnt/boot
・システムのインストール
[ 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 106.0 KiB 1185K/s 00:00 [#########################################] 100% extra 1419.3 KiB 3.12M/s 00:00 [#########################################] 100% community 1921.0 KiB 3.28M/s 00:01 [#########################################] 100% ~ 中略 ~ (127/129) installing make [#########################################] 100% (128/129) installing patch [#########################################] 100% Optional dependencies for patch ed: for patch -e functionality (129/129) installing pkg-config [#########################################] 100% pacstrap /mnt base base-devel 98.35s user 14.78s system 51% cpu 3:41.15 total #
[ Bootloader ]
Bootloaderは以下が、使用可能。
- grub-bios
- grub-efi-x86_64
- syslinux
# arch-chroot /mnt pacman -S grub-bios #
・システム設定
[ fstab ]
# genfstab -p /mnt >> /mnt/etc/fstab #
[ chroot ]
以降は、新規インストールしたシステムにchrootして作業する。
# arch-chroot /mnt sh-4.2#
[ Hostname ]
適宜設定。
# echo "arch01.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 ]
# vi /etc/locale.conf # cat /etc/locale.conf LANG="ja_JP.UTF-8" # # cp -p /etc/locale.gen /etc/locale.gen.org # vi /etc/locale.gen # diff -wb /etc/locale.gen.org /etc/locale.gen 281c281 < #ja_JP.UTF-8 UTF-8 --- > ja_JP.UTF-8 UTF-8 # # locale-gen Generating locales... ja_JP.UTF-8... done Generation complete.
[ Keyboard ]
# vi /etc/vconsole.conf # cat /etc/vconsole.conf KEYMAP=jp106
[ ram image ]
# mkinitcpio -p linux #
[ grub install ]
# grub-install --target=i386-pc --boot-directory=/boot --recheck --debug /dev/sda # grub-mkconfig -o /boot/grub/grub.cfg # cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo # cd /boot/grub/locale # gzip en.mo #
[ 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,} # reboot #
・初期設定
必要最低限のパッケージを追加する。
[network(DHCP)]
# ip link show # ethデバイス名確認 (私の環境では「enp2s1」) # systemctl start dhcpcd@enp2s1 # systemctl enable dhcpcd@enp2s1 #次回より自動起動
[network(固定IP)]
# ip link show # ethデバイス名確認 (私の環境では「enp2s1」) # vi /etc/conf.d/network # cat /etc/conf.d/network interface=enp2s1 address=192.168.100.100 netmask=24 broadcast=192.168.100.255 gateway=192.168.100.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-user.target.wants/ # systemctl start network.service # systemctl enable network.service # 次回より自動起動 # # #DNS設定 # vi /etc/resolv.conf # cat /etc/resolv.conf 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
[ 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 starty 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 # chmod +x /etc/rc.local # cat /etc/rc.local --- #!/bin/bash touch /tmp/hoge # test --- # # 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
・Yaourtのインストール
AURを使用する場合。公式パッケージ(pacman)で事足りる場合は特に不要。
# cd /usr/local/src # pacman -Sy diffutils gettext yajl curl wget # # 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.1-2-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.2.2-1-any.pkg.tar.xz # yaourt --stats
以上
・参照
https://wiki.archlinux.org/index.php/Installation_Guide
https://wiki.archlinux.org/index.php/GRUB2
https://wiki.archlinux.org/index.php/Systemd
https://wiki.archlinux.org/index.php/Yaourt