ArchLinuxを以下の条件のもとインストールする.
条件
- 64bitBIOSブート
- USBインストールメディアからインストール
- 2台の同一型番のHDDまたは,SSDでRAID1を作成
-
/dev/sda1
と/dev/sdb1
でRAID1/dev/md0
を構築(/boot
用パーティション) -
/dev/sda2
と/dev/sdb2
でRAID1/dev/md1
を構築(/
用パーティション) - ネットワークは有線接続
- キーマップはUS
- 同一ネットワークの別PCからsshで操作できるところまで設定
#USBインストールメディアの作成と起動
公式のArchLinuxをダウンロードのページからISOファイルarchlinux-年.月.日-x86_64.iso
をダウンロードする.
dd
コマンドを使用してISOファイルをUSBメモリに書き込む.
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdy status=progress && sync
USBインストールメディアが完成したら,USBインストールメディアからライブ環境を起動する.
#ArchLinuxのインストール
/dev/sda
のパーティションの作成
root@archiso ~ # gdisk /dev/sda
###バージョン情報など###
Comand (? for help):o
This option deletes all partitions and create a new protective MBR.
Proceed? (Y/N):Y
Comand (? for help):n
Partition number (1-128, default 1):1
First sector (34-xxxxxx, default = 2048) or {+-}size{KMGTP}:2048
Last sector (2048-xxxxxx, default = xxxxxx) or {+-}size{KMGTP}:+100MB
Hex code or GUID (L to show codes, Enter = 8300):ef02
Changed type of partition to 'BIOS boot partition'
Comand (? for help):n
Partition number (1-128, default 2):2
First sector (34-xxxxxx, default = 206848) or {+-}size{KMGTP}:206848
Last sector (2048-xxxxxx, default = xxxxxx) or {+-}size{KMGTP}:-100MB
Hex code or GUID (L to show codes, Enter = 8300):fd00
Changed type of partition to 'Linux RAID'
Comand (? for help):w
Final checks compleate. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
DO you want to proceed? (Y/N):Y
OK; writing new GUID partition table (GPT) to /dev/sda
The Operation has compleated successfully.
/dev/sdb
のパーティションの作成(/dev/sda
と同じ設定)
root@archiso ~ # gdisk /dev/sdb
###バージョン情報など###
Comand (? for help):o
This option deletes all partitions and create a new protective MBR.
Proceed? (Y/N):Y
Comand (? for help):n
Partition number (1-128, default 1):1
First sector (34-xxxxxx, default = 2048) or {+-}size{KMGTP}:2048
Last sector (2048-xxxxxx, default = xxxxxx) or {+-}size{KMGTP}:+100MB
Hex code or GUID (L to show codes, Enter = 8300):ef02
Changed type of partition to 'BIOS boot partition'
Comand (? for help):n
Partition number (1-128, default 2):2
First sector (34-xxxxxx, default = 206848) or {+-}size{KMGTP}:206848
Last sector (2048-xxxxxx, default = xxxxxx) or {+-}size{KMGTP}:-100MB
Hex code or GUID (L to show codes, Enter = 8300):fd00
Changed type of partition to 'Linux RAID'
Comand (? for help):w
Final checks compleate. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
DO you want to proceed? (Y/N):Y
OK; writing new GUID partition table (GPT) to /dev/sdb
The Operation has compleated successfully.
RAID1アレイ(/dev/md0
)の作成
root@archiso ~ # mdadm --create --verbose --level=1 --metadata=1.2 --chunk=64 --raid-devices=2 /dev/md0 /dev/sda1 /dev/sdb1
mdadm: chunk size ignored for this level
mdadm: /dev/sda1 appers to contain an ext2fs file system
size=101376K mtime=xxx xxx x xx:xx:xx xxxx
mdadm: /dev/sdb1 appers to contain an ext2fs file system
size=101376K mtime=xxx xxx x xx:xx:xx xxxx
mdadm: size set to 101376K
Continue creating array?y
mdadm: array /dev/md0 started
RAID1アレイ(/dev/md1
)の作成
root@archiso ~ # mdadm --create --verbose --level=1 --metadata=1.2 --chunk=64 --raid-devices=2 /dev/md1 /dev/sda2 /dev/sdb2
mdadm: chunk size ignored for this level
mdadm: size set to xxxxxxxxxK
mdadm: automatically enabling write-intent bitmap on large array
mdadm: array /dev/md1 started
RAIDアレイの作成状況を表示する
root@archiso ~ # cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[1] sda2[0]
xxxxxxxxx blocks super 1.2 [2/2] [UU]
[==>..................] resync = 38.9% (yyyyyyy/xxxxxxxxx) finish=7.6min speed 153642K/sec
bitmap: 1/1 pages [4KB], 65536KB chunk
md0 : active raid1 sdb1[1] sda1[0]
101376 blocks super 1.2 [2/2] [UU]
unused devices: <none>
RAIDアレイが作成完了するまで待つ.
大容量のHDDで実行する場合1時間以上かかる場合もある.
アレイの作成が完了したらパーティションを初期化する.
root@archiso ~ # mkfs.ext4 /dev/md0
root@archiso ~ # mkfs.ext4 /dev/md1
作成したパーティションをマウントする.
root@archiso ~ # mount /dev/md1 /mnt
root@archiso ~ # mkdir /mnt/boot
root@archiso ~ # mount /dev/md0 /mnt/boot
時間の設定
root@archiso ~ # timedatectl set-ntp true
root@archiso ~ # timedatectl set-timezone Asia/Tokyo
ArchLinuxのパッケージをインストールするミラーリストの選択(日本のサーバを選ぶ)
root@archiso ~ # vim /etc/pacman.d/mirrorlist
root@archiso ~ # cat /etc/pacman.d/mirrorlist
##
## Arch Linux repository mirrorlist
## Filtered by mirror score from mirror status page
## Generated on 20xx-xx-xx
##
## Japan
Server = http://mirrors.cat.net/archlinux/$repo/os/$arch
## Japan
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
## Japan
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
## other country
...
ベースシステムと必要なパッケージのインストール
root@archiso ~ # pacstrap /mnt base linux linux-firmware vim dhcpcd mdadm
mdadmの設定ファイルを更新する.
これをやっておかないとmd127問題などが発生する.
root@archiso ~ # mdadm --detail --scan >> /mnt/etc/mdadm.conf
root@archiso ~ # cat /mnt/etc/mdadm.conf
...
...
...
ARRAY /dev/md0 metadata=1.2 name:archiso:0 UUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
ARRAY /dev/md1 metadata=1.2 name:archiso:0 UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
UUIDを使用してディスクを判別するためにfstabを作成する.
root@archiso ~ # genfstab -U /mnt >> /mnt/etc/fstab
root@archiso ~ # cat /mnt/etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/md1
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 rw,relatime 0 1
# /dev/md0
UUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy /boot ext4 rw,relatime 0 2
インストールした環境にchrootする
root@archiso ~ # arch-chroot /mnt
タイムゾーンと時間の設定
[root@archiso /]# ln -sf /usr/share/zoneinfo/Asia/Tokyo > /etc/localtime
[root@archiso /]# hwclock --systohc
使用する文字コードの設定
[root@archiso /]# vim /etc/locale.gen
[root@archiso /]# cat /etc/locale.gen
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
[root@archiso /]# locale-gen
[root@archiso /]# vim /etc/locale.conf
[root@archiso /]# cat /etc/locale.conf
LANG=en_US.UTF-8
ホストネームの設定
[root@archiso /]# vim /etc/hostname
[root@archiso /]# cat /etc/hostname
myhostname
ネットワークの設定
[root@archiso /]# vim /etc/hosts
[root@archiso /]# cat /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
rootのパスワード設定
[root@archiso /]# passwd
mdadmフックをmkinitcpio.conf
に追加
[root@archiso /]# vim /etc/mkinitcpio.conf
[root@archiso /]# cat /etc/mkinitcpio.conf
....
MODULES=(raid1 ext4)
....
HOOKS=(base udev autodetect modconf block filesystems keyboard fsck mdadm_udev)
....
initramfsイメージを作成
[root@archiso /]# mkinitcpio -p linux
ブートローダーのインストールと設定を行う.
RAID1の場合は/dev/sda
と/dev/sdb
にそれぞれgrub-install
コマンドを実行する.
[root@archiso /]# pacman -S grub os-prober intel-ucode
[root@archiso /]# grub-install --target=i386-pc --debug /dev/sda
[root@archiso /]# grub-install --target=i386-pc --debug /dev/sdb
[root@archiso /]# grub-mkconfig -o /boot/grub/grub.cfg
起動時にネットワークに接続するように設定
[root@archiso /]# systemctl enable dhcpcd
chrootからログアウトし再起動する
[root@archiso /]# exit
root@archiso ~ # umount -R /mnt
root@archiso ~ # reboot
#ArchLinuxインストール後の初期設定
rootでログインする
myhostname login : root
passwd
ローカルユーザーを作成
[root@myhostname ~]# useradd -m -G wheel -s /bin/bash myusername
[root@myhostname ~]# passwd myusername
sudoをインストールしwheelグループのユーザーでsudoが使えるようにする.
[root@myhostname ~]# pacman -S sudo
[root@myhostname ~]# vim /etc/sudoers
[root@myhostname ~]# cat /etc/sudoers
...
##
## User privilege specification
##
root ALL=(ALL) ALL
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL
...
ローカルユーザーでログイン
[root@myhostname ~]# exit
myhostname login : myusername
passwd
opensshのインストールと有効化
[myusername@myhostname ~]# sudo pacman -S openssh
[myusername@myhostname ~]# sudo systemctl enable sshd
#最後に
BIOSブートで起動する環境にArchLinuxをRAID1ストレージにインストールしsshで外部から操作できるところまで設定を行った.
詳しい説明はインストールガイド-ArchWikiと,RAID-ArchWikiを参照.