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

海馬のかわり

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

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

ArchLinux 2013.09.01 インストールメモです。
今回は64bit版を使用しました。

・使用メディア
ISO: archlinux-2013.02.01-dual.iso
md5:f87e89a502fb2d1f30ca0f9a927c9a91

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

f:id:extrea:20130915215400p:plain

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

f:id:extrea:20130915215429p:plain

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

# 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: 16GB

device mountpoint size
/dev/sda1 /boot 100MB
/dev/sda2 swap 512MB
/dev/sda3 / 残り全て

 

# fdisk /dev/sda
# fdisk -l

Disk /dev/sda: 17.2 GB, 17179869184 bytes, 33554432 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 label type: dos
Disk identifier: 0xa8a49eff

   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    33554431    16149504   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       16G   39M   15G   1% /mnt
/dev/sda1                   ext4       93M  1.6M   85M   2% /mnt/boot


・システムのインストール

[ mirrorlist ]
近くて早いミラー先を使用できるように、rankmirrorコマンドにてリストを更新する。

# cp -p /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
# rankmirrors -n 3 /etc/pacman.d/mirrorlist.orig > /etc/pacman.d/mirrorlist #けっこう時間がかかる
# cat /etc/pacman.d/mirrorlist #上位3件がリストされている。
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = http://archlinux.cs.nctu.edu.tw/$repo/os/$arch

[ System Install ]
pacstrapスクリプトにて必要なパッケージグループを指定し、インストールを行う。

まずは基本的なパッケージグループのみ選択。

- base
- base-devel
 

# pacstrap /mnt base base-devel
==> Creating install root at /mnt
==> Installing packages to /mnt
:: Synchronizing package databases...
 core              104.5 KiB   177K/s 00:01 [######################################################################] 100%
 extra            1449.0 KiB   594K/s 00:02 [######################################################################] 100%
 community        2024.7 KiB   421K/s 00:05 [######################################################################] 100%

~ 中略 ~

(126/128) installing patch                  [######################################################################] 100%
Optional dependencies for patch
    ed: for patch -e functionality
(127/128) installing pkg-config             [######################################################################] 100%
(128/128) installing sudo                   [######################################################################] 100%
pacstrap /mnt base base-devel  42.14s user 22.91s system 13% cpu 7:56.05 total
# 


[ Bootloader ]
Bootloaderは以下が、使用可能。

- grub-bios
- grub-efi-x86_64
- syslinux

今回はgrub-biosを選択する。

# pacstrap /mnt grub-bios
# 


[ その他パッケージ ]
個人的に最小限必要そうなものを適宜選択。

# pacstrap /mnt net-tools netctl dnsutils sysstat mlocate openssh syslog-ng
# systemctl enable sshd
# systemctl enable syslog-ng

・システム設定

[ fstab ]

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


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

# arch-chroot /mnt
sh-4.2#


[ Hostname ]
適宜設定。

# echo "arch01.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.orig
# vi /etc/locale.gen
# diff -wb /etc/locale.gen.orig /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 ]

# echo "KEYMAP=jp106" > /etc/vconsole.conf
# 


[ 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デバイス名確認 (私の環境では「eno16777736」)
# cp -p /etc/netctl/examples/ethernet-dhcp /etc/netctl/dhcp
# vi /etc/netctl/dhcp # Interface名eth0をデバイス名に変更
# netctl enable dhcp
# netctl start dhcp
# ip addr show #ipアドレスが配布されたことを確認

[network(固定IP)]

# ip link show # ethデバイス名確認 (私の環境では「eno16777736」)
# cp -p /etc/netctl/example/ethernet-static /etc/netctl/static
# vi /etc/netctl/static # Interface名eth0および各種値を変更
# diff -wb /etc/netctl/examples/ethernet-static /etc/netctl/static
2c2
< Interface=eth0
---
> Interface=eno16777736
5c5
< Address=('192.168.1.23/24' '192.168.1.87/24')
---
> Address=('192.168.6.233/24')
7,8c7,8
< Gateway='192.168.1.1'
< DNS=('192.168.1.1')
---
> Gateway='192.168.6.2'
> DNS=('192.168.6.2')

# netctl enable static
# netctl start static
# ip addr show #ipアドレスが付与されたことを確認

# #動作確認
# 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

[ rc.local ]
ちょっとした処理で、systemdをいじるのが手間なので、rc.local相当を作成しておく

# vi /etc/rc.local
# cat /etc/rc.local
---
#!/bin/bash
touch /tmp/hoge
---

# 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

・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

・Xfce4のインストール

# pacman -S xorg-server xorg-server-utils xorg-xinit xf86-video-vesa xfce4 otf-ipafontfirefox
# startxfce4

今回ビデオドライバについては汎用のvesaを使用しているが、使用するビデオカードに合わせ以下が使用可

# pacman -Ss xf86-video
extra/xf86-video-apm 1.2.5-3
    X.org Alliance ProMotion video driver
extra/xf86-video-ark 0.7.5-3 (xorg-drivers xorg)
    X.org ark video driver
extra/xf86-video-ast 0.97.0-3 (xorg-drivers xorg)
    X.org ASPEED AST Graphics video driver
extra/xf86-video-ati 1:7.2.0-1 (xorg-drivers xorg)
    X.org ati video driver
extra/xf86-video-chips 1.2.5-3
    X.org Chips and Technologies video driver
extra/xf86-video-cirrus 1.5.2-2 (xorg-drivers xorg)
    X.org Cirrus Logic video driver
extra/xf86-video-dummy 0.3.6-3 (xorg-drivers xorg)
    X.org dummy video driver
extra/xf86-video-fbdev 0.4.3-3 (xorg-drivers xorg)
    X.org framebuffer video driver
extra/xf86-video-glint 1.2.8-3 (xorg-drivers xorg)
    X.org GLINT/Permedia video driver
extra/xf86-video-i128 1.3.6-3 (xorg-drivers xorg)
    X.org Number 9 I128 video driver
extra/xf86-video-i740 1.3.4-3
    X.org Intel i740 video driver
extra/xf86-video-intel 2.21.15-1 (xorg-drivers xorg)
    X.org Intel i810/i830/i915/945G/G965+ video drivers
extra/xf86-video-mach64 6.9.4-2 (xorg-drivers xorg)
    X.org mach64 video driver
extra/xf86-video-mga 1.6.2-3 (xorg-drivers xorg)
    X.org mga video driver
extra/xf86-video-modesetting 0.8.0-1 (xorg-drivers xorg)
    X.org generic modesetting video driver
extra/xf86-video-neomagic 1.2.8-1 (xorg-drivers xorg)
    X.org neomagic video driver
extra/xf86-video-nouveau 1.0.9-1 (xorg-drivers xorg)
    Open Source 2D acceleration driver for nVidia cards
extra/xf86-video-nv 2.1.20-3 (xorg-drivers xorg)
    X.org nv video driver
extra/xf86-video-openchrome 0.3.3-2 (xorg-drivers xorg)
    X.Org Openchrome drivers
extra/xf86-video-r128 6.9.1-4 (xorg-drivers xorg)
    X.org ati Rage128 video driver
extra/xf86-video-rendition 4.2.5-3
    X.org Rendition video driver
extra/xf86-video-s3 0.6.5-3
    X.org S3 video driver
extra/xf86-video-s3virge 1.10.6-3
    X.org S3 Virge video driver
extra/xf86-video-savage 2.3.6-4 (xorg-drivers xorg)
    X.org savage video driver
extra/xf86-video-siliconmotion 1.7.7-3 (xorg-drivers xorg)
    X.org siliconmotion video driver
extra/xf86-video-sis 0.10.7-4 (xorg-drivers xorg)
    X.org SiS video driver
extra/xf86-video-sisimedia 0.9.1-7
    X.org SiS 671 video driver
extra/xf86-video-sisusb 0.9.6-3
    X.org SiS USB video driver
extra/xf86-video-tdfx 1.4.5-3 (xorg-drivers xorg)
    X.org tdfx video driver
extra/xf86-video-trident 1.3.6-4 (xorg-drivers xorg)
    X.org Trident video driver
extra/xf86-video-tseng 1.2.5-3
    X.org tseng video driver
extra/xf86-video-v4l 0.2.0-12 (xorg-drivers xorg)
    X.org v4l video driver
extra/xf86-video-vesa 2.3.2-3 (xorg-drivers xorg) [インストール済み]
    X.org vesa video driver
extra/xf86-video-vmware 13.0.1-1 (xorg-drivers xorg)
    X.org vmware video driver
extra/xf86-video-voodoo 1.2.5-3 (xorg-drivers xorg)
    X.org 3dfx Voodoo1/Voodoo2 2D video driver

以上

・参照

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