LoginSignup
0
0

More than 3 years have passed since last update.

Arch Linux install to RAID1 storage (BIOS boot)

Posted at

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を参照.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0