背景
ArchLinuxに興味を持ち、インストールしたくなったが、手持ちのUbuntuの入ったノートPCをデュアルブートさせるのが都合が悪かったため、外付けSSDにインストールすることにした。
手順
今回はブート方式を64bitUEFIとし、ブートローダはGRUBを利用する。
インストールメディアの作成
archlinuxのisoファイルをddコマンドや専用ソフトを使ってUSBフラッシュメモリに焼いてもよいが、自分はVentoyというツールを用いて、マルチブートUSBを作成した。(導入にWindowsかLinuxの環境が必要なので注意)
Ventoyを用いるとダウンロードしたisoファイルをUSBフラッシュメモリにドラッグ&ドロップするだけで簡単にマルチブートUSBが作成できるので便利。
自分は32GBのUSBフラッシュメモリにUbuntuやArchlinux、VyOS、proxmoxなどを入れている。
SSDへのインストール
ノートPCに作成したインストールメディアと外付けSSDを挿入した状態で、インストールメディアを起動する(BIOSセットアップからboot sequenceをUSB Keyが先頭になるように切り替えておく。また、セキュアブートも無効化にしておく。)
この状態で電源を入れるとVentoryの画面が表示されるので、archlinuxを選択し、「Boot in grub2 mode
」を選択する。(多分normal node
でも問題ない。)
パーティション作成
今回は以下のようなパーティションにする。(SSDが/dev/sda
であるとする)
-
/dev/sda1
:512MB、fat32、/boot
ととして使う -
/dev/sda2
:2G、linux-swap、スワップ領域ととして使う -
/dev/sda3
:残り全て、ext4、/
として使う
まずは外付けSSDがどのように認識されているかを確認する。
fdisk -l
どのDiskが外付けSSDに対応しているかはDisk Modelなどを見ることで確認できる。自分の場合はESD-EMB
となっていた。
ここで、初期状態ではDisklabel Typeはdosになっており、パーティションは作成されていないはずである。(Deviceから始まる表が存在しない)
SSDからGRUBを使って正常にブートされるためにはDisklabel Typeがgptとなり、/bootに
以下parted
コマンドを利用してパーティションを作成する。
parted /dev/sda
(parted)mklabel gpt
(parted)mkpart
Partition name? []?
File system type? [ext2]? fat32
Start? 1MiB
End? 513MiB
(parted)set 1 esp on
(parted)mkpart
Partition name? []?
File system type? [ext2]? linux-swap
Start? 513MiB
End? 2513MiB
(parted)mkpart
Partition name? []?
File system type? [ext2]? ext4
Start? 2513MiB
End? 100%
(parted)q
もう一度fdisk -l
をしてパーティションがちゃんと作られていることを確認。
例
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: ESD-EMB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 28DB6BF9-705D-4EEA-A959-741E11CA1294
Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 5146623 4096000 2G Linux swap
/dev/sda3 5146624 976773119 971626496 463.3G Linux filesystem
ファイルシステムの初期化
mkfs.vfat -F32 /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
mkfs.ext4 /dev/sda3
マウント
mount /dev/sda3 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
最低限必要なパッケージのインストール
pacstrap /mnt linux base base-devel linux-firmware dhcpcd
fstabを作成
/etc/fstab
ファイルはシステム起動時に必要なファイルであり、Archlinux Wikiでは以下のように説明されている。
ディスクパーティションや様々なブロックデバイス、リモートファイルシステムをどうやってファイルシステムにマウントするかを記述します。
以下のコマンドで/mnt以下のマウントをファイルに書き出す。
genfstab -U /mnt >> /mnt/etc/fstab
システムの設定
arch-chroot /mnt
/dev/sda3
、つまり新しく作ったArchlinuxの中に入るイメージ。
必要に応じてロケールやキーマップなどの設定をする。
ここではインストール後でも行えるのでスキップする。
archlinuxを起動した時にloginユーザとパスワードを求められるので、ここで設定しておく必要がある。
passwd
これにより、ログイン時にrootと設定したパスワードでログインできる。
GRUBのインストール
自分は有線でネットワークに繋いでいたが、無線を利用する場合は先に無線のセットアップをする必要がある。
pacman -S grub dosfstools efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --recheck
mkdir /boot/EFI/boot
cp /boot/EFI/grub/grubx64.efi /boot/EFI/boot/bootx64.efi
grub-mkconfig -o /boot/grub/grub.cfg
終了
exit
umount -R /mnt
reboot
再起動するので、BIOSセットアップからvboot sequenceを外付けSSDが一番上に設定し、インストールメディアは抜いておく。
GNU GRUBのメニューが表示されたら成功。
ArchLinuxを選択するか、数秒放置すればArchLinuxが起動し、ログインを求められる。
補足
一度SSDを抜いたらうまく起動しなくなったが、再度BIOSセットアップ画面に行ったらうまく動くようになった。