ArchLinux インストール覚書、いよいよ着手。本業がブラック化の様相を呈してきて時間が無く、作業がブツ切りになるので、脳内記憶の代わりにメモ記事を量産。そういうワケで自分の為の覚書です。
下記のコマンドとその結果の引用は、すべて画面表示を見ながらの手打ち。誤記が混じる可能性があるので、そこんとこヨロシク。
…で、やってはみたけど、結果は失敗。とりあえずやった事の記録という事で後悔公開しておく。
前準備など
参考文献
インストール用のisoイメージは、昨年ダウンロード(2016.12.01.版)したものをDVDに焼いた。USBメモリじゃないのは、たまたま手元に無かったから。いや買ってきたって昼飯1食分にもならないんだけども。
作業
はじめの一歩
BIOSの設定はテキトーに。
起動時に Ctrl+I を押して、HDDを RAID-1 として設定する。画面の指示に従うだけなので、詳細は省略…
…なのだが。
このマシンのRAIDコントローラはLinuxからは使えないらしい。
-
状況証拠:
-
LinuxからRAIDコントローラが見えなければハードウェアRAIDは不可。
-
LinuxにはソフトウェアRAIDを構成する標準的な方法が整備されており、スピードではハードウェア構成が勝るものの、機能的には圧倒的にソフトウェアRAIDに軍配が上がる。
-
元々LinuxユーザはWindowsに比べて圧倒的に少数派であり、その上ソフトウェアRAIDが中心の為、RAIDコントローラメーカがLinux用ドライバを用意する旨味は無い。
-
そういった理由から、Linux対応RAIDコントローラは数万円以上するのが普通。Windows向けと比べると一桁近く違うとの事。→マシン組込コントローラは環境が異なるとは言え、経済的な事情は似たり寄ったりと推測できる。
-
直接証拠:
-
SCSIコントローラを認識できれば /proc/scsi 以下に色々と情報が入るはず。Red Hat Enterprise Linux 4: リファレンスガイド - 章 5章. proc ファイルシステム - 5.3. /proc/配下のディレクトリ - 5.3.8. /proc/scsi/
-
結果は下記の通り。ドライブそのものはそれぞれ見えているが、RAIDコントローラは認識されていない。残念。
# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: ST3320620AS Rev: K
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: WDC WD3200AAKS-0 Rev: 3A01
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi5 Channel: 00 Id: 00 Lun: 00
Vendor: TSSTcorp Model: DVD+-RW RS-H653F Rev: D300
Type: CD-ROM
インストールの準備
ArchWiki - インストールガイド を読んで、この通りに操作。
当たり前だけど、しばらくはインストールメディアを抜かずにそのままにしておく。
キーボード
# loadkeys jp106
コンソールフォント
コンソールフォントはそのまま変更せず。日本語が表示されればそれなりに便利そうだけども、当面は必要無いと判断。
起動モードの確認
# ls /sys/firmware
acpi dmi memmap
ま、古いマシンだからねぇ。わかってた事だけど、UEFIではなくてBIOS起動だった。
パーティション、パーティションのフォーマット
…の前に、ドライブのフォーマットを決める。今回はドライブ丸ごと Btrfs にしたい。
その場合の注意点。ArchWiki - Btrfs#パーティショニングによるとスワップ領域を作成できないらしい。
しかしArchWiki - パーティショニング の[パーティションの大きさはどうすればいいですか?]には下記の記述あり。これを信じる事にする。
大容量のメモリ(1024MB 以上)を積んでいるときは、スワップパーティションは小さく、または作らなくてもかまわないでしょう。
ちなみに Btrfs の読み方だが、SAOファンとしては「ビーターエフエス」と読みたい所。ビーター… うむ、良い響きだ。
という訳で Btrfs によるフォーマット。コマンドの日本語ヘルプはOracle® Linux管理者ソリューション・ガイドfor リリース6 - 5.2 Btrfsファイル・システムの作成
# ls /dev/sd*
/dev/sda /dev/sdb
# mkfs.btrfs -L btrfs_raid1 -d raid1 /dev/sda /dev/sdb
btrfs-progs v4.8.2
See http://btrfs.wiki.kernel.org for more information.
/dev/sda appears to contain an existing filesystem (zfs_member).
ERROR: use the -f option to force overwrite of /dev/sda
# mkfs.btrfs -f -L btrfs_raid1 -d raid1 /dev/sda /dev/sdb
btrfs-progs v4.8.2
See http://btrfs.wiki.kernel.org for more information.
Label: btrfs_raid1
UUID:
Node size: 16384
Sector size: 4096
Filesystem size: 596.18GiB
Block group profiles:
Data: RAID1 1.00GiB
Metadata: RAID1 1.00GiB
System: RAID1 8.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 2
Devices:
ID SIZE PATH
1 298.09GiB /dev/sda
2 298.09GiB /dev/sdb
元々 FreeNAS に使ってたHDDが混じってたのでちょっとエラーメッセージが出たが、画面表示の通りに -f オプションを付けて問題無し。一つだけ気になるのは Filesystem size。約300GBのHDDが2台なのだが、この表示ではミラーリングしてない容量になっているように見える。不安だが、とりあえず先へ進む。
パーティションのマウント、ブートローダー
この辺から先はArchWiki - インストールガイドを鵜呑みにしながらというワケにはいかない。ちょっと脇道に逸れる模様。
また、一応、ブートローダーはこの段階でインストールしてみた。
参考文献:
- ArchWiki - Btrfs#パーティショニング
- Oracle® Linux管理者ソリューション・ガイドfor リリース6 - 5.2 Btrfsファイル・システムの作成 この中に「ファイル・システムをマウントする場合、次のようにそのコンポーネント・デバイスのいずれかによって指定できます」という記述がある。
- ただのメモ: rootfs に btrfs をつかってみる
# mount /dev/sda /mnt
# grub-install --recheck --target=i386-pc --root-directory=/mnt /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
ここからはまたArchWiki - インストールガイドの手順に戻る。
インターネットへの接続
# ping archlinuxjp.org
64 bytes from tk2-235-27344.vs.sakura.ne.jp (160.16.119.98): icmp_seq=1 ttl=53 time=11.3 ms
〈以下略〉
システムクロックの更新
# timedatectl set-ntp true
# timedatectl status
Local time: Sun 2017-01-15 12:31:24 UTC
Universal time: Sun 2017-01-15 12:31:24 UTC
RTC time: Sun 2017-01-15 12:31:24
Time zone: UTC (UTC, +0000)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
本当はntpサーバは自分で設定したい。日本なら ntp.nict.jp が鉄板だと思ってる。特殊事情が無ければこの一択。
が、その辺の調整は後回しにしよう。
インストール
ミラーの選択
日本なら Japan をファイル先頭に持ってくる。
# cd /etc/pacman.d
# mv mirrorlist mirrorlist.org
# cp mirrorlist.org mirrorlist
# vi mirrorlist
〈編集コマンド省略〉
# diff -U0 mirrorlist.org mirrorlist
--- mirrorlist.org 2016-12-01 16:52:03.000000000 +0000
+++ mirrorlist 2017-01-15 12:37:45.778738064 +0000
@@ -6,0 +7,2 @@
+## Score: 2.0, Japan
+Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
@@ -213,2 +214,0 @@
-## Score: 2.0, Japan
-Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
ベースシステムのインストール
# cd
# pwd
/root
# pacstrap /mnt base btrfs-progs
〈表示省略〉
システムの設定
fstab、chroot、タイムゾーン、ロケール
# genfstab -U /mnt >> /mnt/etc/fstab
# cat /mnt/etc/fstab
#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sda LABEL=btrfs_raid1
UUID=〈省略〉 / btrfs rw,relatime,space_cache,subvolid=5,subvol=/ 0 0
# arch-chroot /mnt
# rm /etc/localtime
# ln -s /usr/share/zoneinfo/Japan /etc/localtime
# hwclock --systohc --utc
# mv /etc/locale.gen /etc/locale.gen.org
# cp /etc/locale.gen.org /etc/locale.gen
# vi /etc/locale.gen
〈編集内容省略〉
# diff -U0 /etc/locale.gen.org /etc/locale.gen
--- /etc/locale.gen.org 2016-08-06 20:17:48.000000000 +0900
+++ /etc/locale.gen 2017-01-16 00:09:36.865540733 +0900
@@ -291,2 +291,2 @@
-#ja_JP.EUC-JP EUC-JP
-#ja_JP.UTF-8 UTF-8
+ja_JP.EUC-JP EUC-JP
+ja_JP.UTF-8 UTF-8
# rm /etc/locale.gen.org
# echo KEYMAP=jp106 >/etc/vconsole.conf
# echo 〈例えば taro〉 >/etc/hostname
# mv /etc/hosts /etc/hosts.org
# cp /etc/hosts.org /etc/hosts
# vi /etc/hosts
〈編集内容省略〉
# diff -U0 /etc/hosts.org /etc/hosts
--- /etc/hosts.org 2016-12-06 08:43:55.000000000 +0900
+++ /etc/hosts 2017-01-16 00:23:09:598776706 +0900
@@ -7,0 +8 @@
+〈家庭内で割り当てるIPアドレス〉 〈例えば taro.example.com〉 〈例えば taro〉
Initramfs
参考文献:
# mv /etc/mkinitcpio.conf /etc/mkinitcpio.conf.org
# cp /etc/mkinitcpio.conf.org /etc/mkinitcpio.conf
# vi /etc/mkinitcpio.conf
〈編集内容省略〉
# diff -U0 /etc/mkinitcpio.conf.org /etc/mkinitcpio.conf
--- /etc/mkinitcpio.conf.org 2016-11-28 05:08:44.000000000 +0900
+++ /etc/mkinitcpio.conf 2017-01-16 00:45:24.614998751 +0900
@@ -52 +52 @@
-HOOKS="base udev autodetect modconf block filesystems keyboard fsck"
+HOOKS="base udev autodetect modconf block filesystems keyboard fsck btrfs"
# rm /etc/mkinitcpio.conf.org
# mkinitcpio -p linux
〈表示省略〉
但し、途中で警告が出た:
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: aic94xx
良くわからないが、ひとまず無視
Root パスワード
# passwd
〈root用パスワード〉
再起動
# exit
exit
arch-chroot /mnt 9.43s user 2.16s system 0% cpu 48:24.70 total
# umount -R /mnt
ここでインストール用メディアを取り出す。
# reboot
結果は失敗。
GNU GRUB version 2.02~beta3
Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists possible
device or file completions.
grub>
さて困った。でもいい線は行ってる気がする。grubのインストールを見直せば何とかなりそう。と、信じたい。