5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Arch LinuxをUEFIブートかつRAID1(MDADM)でインストール

Posted at

はじめに

個人的に気に入っているLinuxディストリビュージョンであるArch LinuxをMDADMを用いた
Software RAID環境にUEFIブートでインストールしたので、そのメモを書いておきます。

ハードウェア構成

Machine : NEC Mate MK32M/B-H
CPU : Intel Core i5 4570
M/B : Intel B85 Express Chipset
MEM : 20GB
Storage : WD Red WD10JFCX 1TB 2.5inch x2

インストールの準備

光学ドライブは取り外してHDDエンクロージャを載せているので、USBメモリを利用してインストールします。
今回は部屋に落ちてたソニーの16GB USB3.0 USBメモリを使いました。

今回はddでブータブルUSBを作成するので、Linux環境で操作を行います。
まずはArchのisoをダウンロードします。
日本サーバーだとUTかJAISTからもらってきます。
詳しくは公式をどうぞ

shell
wget %isoのアドレス%

ダウンロードが完了したら、ddで焼きこみます。

shell
dd bs=4M if=%isoファイル% of=/dev/sdb && sync

注意:Windowsで焼きこむと何故かUEFIでブートしなかったりとろくなことになりません。
VMWareなどを用いてLinux環境でddすることをおすすめします。

UEFIの設定

次にUEFI側の設定を行います。この工程はマシンによって異なる為一概に説明できないのですが、とりあえず

  • BIOSブートではなくUEFIブートを優先(もしくはBIOSブートをオフ)
  • Secure Bootをオフ
  • Compatibility Support Mode(CSM)をオフ
  • USBからのブートを優先

くらいやっておけば大丈夫だと思います。ここはマザーボードやBIOSによって
異なる為いろいろと試してみてください。

インストーラのブートと各種確認

先ほど焼きこんだUSBメモリを挿し、USBからブートします。起動したら以下のコマンドでEFIモードでのぶーとを確認します。

shell
ls /sys/firmware/ | grep efi

何も表示されなかった場合、EFIモードではなくBIOSモードでブートしています。
設定を見直し、EFIモードでブートしてください。

EFIモードでのブートが確認できたら、次の手順へ進みます。

ソフトウェアRAIDの構築(mdadm)

mdadmを用いて、ソフトウェアRAID(RAID1)を構築します。今回、RAIDに用いるHDDはそれぞれ
sdasdbとして認識されている物とします。

とりあえず、sdaにパーティション構造を作成していきます。
UEFIブートを用いるので、まずはEFIパーティションを作成します。
Archでは様々なパーティション作成方法が用意されているので、公式Wikiなどを見ながら
512MBのEFIパーティションを作成してください。HEXフラグはEF02です。

パーティショニング - ArchWiki

なお、今回私は全てのマウントポイントを/に設定する為、以下の様な構造となりました。
メモリ容量的にもSWAPは必要ない気がするので、SWAPパーティションはなしです。

デバイスノード 容量 マウントポイント
sda1 512MB /boot
sda2 (MAX-100MB) /

次に、このパーティション構成をsdbにコピーします。
容量や仕様の違うHDDを組み合わせて使う場合はこの方法は使えないので
その場合は手動でパーティショニングを行ってください。

shell
sgdisk --backup=table /dev/sda
sgdisk --load-backup=table /dev/sdb

次にmdadmを用いてRAID1を構成します。台数などにもよるので各自対応してください。
ここら辺は普段mdadmを使っていれば特に問題ないかと思います。

shell
mdadm --create /dev/md0 --metadata 1.0 --raid-devices=2 --level=1 /dev/sd[ab]1
mdadm --create /dev/md1 --raid-devices=2 --level=1 /dev/sd[ab]2

構成が完了すれば、/dev/md0および/dev/md1が確認できます。

Arch Linuxのインストール

まずはパーティションのフォーマットを行います。

  • EFIパーティション
shell
mkfs.fat -F32 /dev/md0
  • メインパーティション(今回はXFSを使います)
shell
mkfs.xfs /dev/md1

フォーマットが完了したら、マウントを行います。
md0/bootにマウントするために、md1/mntにマウントした後に
mkdirにてbootディレクトリを作成しています。

shell
mount /dev/md1 /mnt
mkdir /mnt/boot
mount /dev/md0 /mnt/boot

あとは通常通りpacstrapにてArch Linuxを/mntにインストールしていきます。

shell
pacstrap -i /mnt base base-devel

インストールが完了したら、mdadmによるRAIDの情報をインストール先に書き込みます。

shell
mdadm --detail --scan >> /mnt/etc/mdadm.conf
genfstab -U -p /mnt >> /mnt/etc/fstab

設定とUEFIブートローダの構築

通常通りarch-chrootを使って/mntへインストールされたシステムに入ります。

shell
arch-chroot /mnt /bin/bash

この後、ビギナーズガイド - ArchWikiに従ってロケール、タイムゾーン、HWClockなどの設定を行ってください。ここまでは通常のインストールと共通です。

設定が完了したら、UEFIブートローダの構築を行います。
今回はsystemd-boot(旧gummiboot)を用います。

shell
mkdir -P /boot/EFI/systemd
mkdir -p /boot/EFI/Boot
cd /usr/lib/systemd/boot/efi
cp systemd-bootx64.efi /boot/EFI/systemd/
cp systemd-bootx64.efi /boot/EFI/Boot/bootx64.efi
efibootmgr -c -d /dev/sda -p 1 -L Arch\ Linux\ 1 -l \\EFI\\systemd\\systemd-bootx64.efi
efibootmgr -c -d /dev/sdb -p 1 -L Arch\ Linux\ 2 -l \\EFI\\systemd\\systemd-bootx64.efi

終わったら、efibootmgrコマンドでブートプライオリティを確認し、必要があれば修正します。

shell
efibootmgr
efibootmgr -o %HEX値%,%HEX値%,...

次に、systemd-bootのブートエントリを作成します。

shell
mkdir -p /boot/loader/entries
nano /boot/loader/entries/arch1.conf

中身はこんな感じで

title   Arch Linux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options root=/dev/md1 rw

最後にmdadm_udevをHOOKSに追加してmkinitcpioを再構成します。

shell
nano /etc/mkinitcpio.conf
~省略~
HOOKS="base udev autodetect modconf block mdadm_udev filesystems keyboard fsck"
~省略~
shell
mkinitcpio -p linux

後は再起動すれば、普通にブートしてくれるかと思います。お疲れ様でした。

参考

[SOLVED] gummiboot + mdadm RAID 1? / Installation / Arch Linux Forums

5
5
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
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?