読者です 読者をやめる 読者になる 読者になる

海馬のかわり

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

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版を選択する。

f:id:extrea:20120730172626p:plain

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

f:id:extrea:20121112113441p:plain

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

# 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

通常は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 ]
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