海馬のかわり

最近記憶力に難がある、地方在住サーバエンジニアの備忘録です。

Arch Linuxインストールメモ (archlinux-2012.07.15)


######################################################################

※2013/2/15追記
archlinux-2013.02.01のインストール手順をこちらに書きました。

Arch Linuxインストールメモ (archlinux-2013.02.01)
http://extrea.hatenablog.com/entry/2013/02/15/123721

######################################################################



以下、旧文


本バージョンよりAIFが無くなりインストール手順がますます難解になったので、メモとしてまとめてみる。

※AIF(Arch Installation Framework/いわゆるインストーラー)


・前提
ISO: archlinux-2012.07.15-netinstall-dual.iso
(Linux Kernel 3.4.4)

・メディアからのブート
上記イメージよりブート。
今回は64bit版を選択する。

f:id:extrea:20120730172626p:plain

ブート完了後、インストール用のライブOSが起動したところ。
(rootでログインした状態)

f:id:extrea:20120730172646p:plain

事前準備として、まずは日本語キーボードを使えるようにする。

# loadkeys jp106


・インストール準備

[ Network ]
手動設定を行う。
(DHCP環境なら起動時点で、ネットワークがつかえるはず)

# ifconfig eth0 up
# ifconfig eth0 netmask 255.255.255.0 10.0.18.204
# route add default gw 10.0.18.254 metric 1
# 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ユーザのパスワードを設定
# /etc/rc.d/sshd start


[ 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),/varパーティションは、ext4でフォーマットする。
/bootパーティションは無難にext2がいいかな。
(Grub version0.97ってpatchを当てない限り、標準ではext4未対応のハズ)

# grub --version
grub (GNU GRUB 0.97)
# 
# mkfs.ext2 /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
rootfs                       rootfs    673M  330M  343M  50% /
dev                          devtmpfs  114M     0  114M   0% /dev
run                          tmpfs     122M   21M  101M  18% /run
/dev/sr0                     iso9660   370M  370M     0 100% /run/archiso/bootmnt
cowspace                     tmpfs     183M   19M  165M  11% /run/archiso/cowspace
/dev/loop0                   squashfs   97M   97M     0 100% /run/archiso/sfs/root-image
/dev/mapper/arch_root-image  ext4      673M  330M  343M  50% /
/dev/loop3                   squashfs   35M   35M     0 100% /run/archiso/sfs/lib-modules
/dev/mapper/arch_lib-modules ext4       93M   42M   51M  46% /usr/lib/modules
/dev/loop6                   squashfs   55M   55M     0 100% /run/archiso/sfs/usr-share
/dev/mapper/arch_usr-share   ext4      415M  168M  247M  41% /usr/share
shm                          tmpfs     122M     0  122M   0% /dev/shm
tmpfs                        tmpfs     122M     0  122M   0% /tmp
/dev/sda4                    ext4      9.4G  270M  8.7G   3% /mnt
/dev/sda1                    ext2       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

通常はgrub-biosになるかと。

# pacstrap /mnt grub-bios
# 


・システム設定

[ fstab ]

# genfstab -p /mnt >> /mnt/etc/fstab
# 


[ chroot ]
以降は、新規インストールしたシステムにchrootして作業する。

# arch-chroot /mnt
# 


[ Hostname ]
適宜設定。

# echo "arch03.localdomain" >> /etc/hostname
# 


[ Timezone ]

# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# 


[ 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=i386-pc --boot-directory=/boot --recheck --debug /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
# 


[ root passwort]
rootユーザーのパスワードを設定。

# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully


・swapの設定

# fdisk -l
# mkswap /dev/sda2
# swapon /dev/sda2
# swapon -s
# 
# echo "/dev/sda2 swap swap defaults 0 0" >> /etc/fstab
# 


・再起動
chroot環境より抜けインストール用ディレクトリをunmount後、システム再起動。

# exit
# umount /mnt/{boot,var,}
# reboot
# 


・初期設定
このままだとネットワーク系の基本コマンドすら使えないので、必要最低限のパッケージを追加する。

[ resolver ]

# echo "nameserver 8.8.8.8" >> /etc/resolv.conf
# echo "nameserver 8.8.4.4" >> /etc/resolv.conf
# 


[ network ]
ISOブート時と同じく、DHCP環境なら設定不要。
手動の場合は以下のファイルを編集する。


[ rc.conf ]

# cp -p /etc/rc.conf /etc/rc.conf.org
# vi /etc/rc.conf
# diff -wb /etc/rc.conf.org /etc/rc.conf
9,12c9,12
< HARDWARECLOCK=
< TIMEZONE=
< KEYMAP=
< CONSOLEFONT=
---
> HARDWARECLOCK="UTC"
> TIMEZONE="Asia/Tokyo"
> KEYMAP="jp106"
> CONSOLEFONT="161"
27c27
< HOSTNAME=
---
> HOSTNAME="arch03.localdomain"
29,33c29,33
< interface=
< address=
< netmask=
< broadcast=
< gateway=
---
> interface=eth0
> address=10.0.18.206
> netmask=255.255.255.0
> broadcast=10.0.18.255
> gateway=10.0.18.254
40c40
< DAEMONS=(syslog-ng network crond)
---
> DAEMONS=(syslog-ng network sshd crond sysstat)


[ package ]
個人的に最低限必要だと思うパッケージは以下の通り

# pacman -Sy dnsutils \
iana-etc \
inetutils \
iproute2 \
iptables \
kbd \
mlocate \
net-tools \
netcfg \
openssh \
openssl \
pam \
tzdata\
sysstat

# 


・Yaourtのインストール
AURを使用する場合。公式パッケージ(pacman)で事足りる場合は特に不要。

# pacman -Sy base-devel
# pacman -Sy diffutils gettext yajl curl
#
# 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/Arch_Install_Scripts
https://wiki.archlinux.org/index.php/GRUB2
https://wiki.archlinux.org/index.php/Yaourt