0
2

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 1 year has passed since last update.

【備忘録】外付けSSDにArchLinuxをインストールする

Last updated at Posted at 2023-10-09

背景

ArchLinuxに興味を持ち、インストールしたくなったが、手持ちのUbuntuの入ったノートPCをデュアルブートさせるのが都合が悪かったため、外付けSSDにインストールすることにした。

手順

今回はブート方式を64bitUEFIとし、ブートローダはGRUBを利用する。

インストールメディアの作成

archlinuxのisoファイルをddコマンドや専用ソフトを使ってUSBフラッシュメモリに焼いてもよいが、自分はVentoyというツールを用いて、マルチブートUSBを作成した。(導入にWindowsかLinuxの環境が必要なので注意)
Ventoyを用いるとダウンロードしたisoファイルをUSBフラッシュメモリにドラッグ&ドロップするだけで簡単にマルチブートUSBが作成できるので便利。
image.png
自分は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セットアップ画面に行ったらうまく動くようになった。

0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?