Posted at

続・ArchLinux インストール覚書

More than 1 year has passed since last update.

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向けと比べると一桁近く違うとの事。→マシン組込コントローラは環境が異なるとは言え、経済的な事情は似たり寄ったりと推測できる。




  • 直接証拠:



# 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 - インストールガイドを鵜呑みにしながらというワケにはいかない。ちょっと脇道に逸れる模様。

また、一応、ブートローダーはこの段階でインストールしてみた。

参考文献:

# 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のインストールを見直せば何とかなりそう。と、信じたい。