外付けSSDにインストールしたgrub2からPC本体のUbuntuを起動する【LPIC201の学習】

LPIC201では、パーティションファイルシステムブートローダ周りが、101の頃より深い内容で出題されます。 このへんはあまり業務では触れない分野なので、色々試してみようと思います。

今回は外付けSSDにgrub2をインストールし、PC本体のUbuntuを起動するところまでやります。

環境

UEFIでブートするには

で、あることが条件であるため、これを満たすように設定していきます。

外付けSSDをフォーマットする

SSDを接続

dmesg で、SSDを接続が /dev/sda として認識されていることを確認

[27264.071136] usb 2-1: new SuperSpeed USB device number 15 using xhci_hcd
[27264.095562] usb 2-1: New USB device found, idVendor=13fd, idProduct=3609
[27264.095571] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[27264.095577] usb 2-1: Product: Ini-3609
[27264.095582] usb 2-1: Manufacturer: Initio
[27264.095586] usb 2-1: SerialNumber: XXXXXXXXXXXXXXXXXXXXXXXXXXX
[27264.109267] scsi host2: uas
[27264.111778] scsi 2:0:0:0: Direct-Access     Initio   Ini-3609         0302 PQ: 0 ANSI: 6
[27264.147921] sd 2:0:0:0: Attached scsi generic sg0 type 0
[27264.186853] sd 2:0:0:0: [sda] Spinning up disk...
[27265.775280] .
[27265.788424] ready
[27265.789297] sd 2:0:0:0: [sda] 58626287 512-byte logical blocks: (30.0 GB/28.0 GiB)
[27265.789773] sd 2:0:0:0: [sda] Write Protect is off
[27265.789776] sd 2:0:0:0: [sda] Mode Sense: 1f 00 10 08
[27265.790752] sd 2:0:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
[27265.808120]  sda: sda1
[27265.836519] sd 2:0:0:0: [sda] Attached SCSI disk

パーティションテーブルを作成

gptで作成するので、gdiskを使います。

Windowsリカバリデータが入っていたので、一旦削除します。

sudo gdisk -l sda
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory.
***************************************************************

Disk sda: 58626287 sectors, 28.0 GiB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 58626253
Partitions will be aligned on 2048-sector boundaries
Total free space is 4268 sectors (2.1 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        58623999   28.0 GiB    0700  Microsoft basic data

d コマンドでパーティションを削除し、u コマンドで作成します。 詳しくはこちら

Hex code or GUID には EF00 を指定します。

Partition number (1-128, default 1):
First sector (34-58626253, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-58626253, default = 58626253) or {+-}size{KMGTP}: 256M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): EF00
Changed type of partition to 'EFI System'

Command (? for help): w

Final checks complete. 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 completed successfully.

ファイルシステムを設定する

mkfs.vfat コマンドでfat32を設定します。

sudo mkfs.vfat -F32 /dev/sda1

grub2をインストールする。

以下のコマンドでインストールします。

sudo mount /dev/sda1 /mnt/disk1
sudo grub-install --target x86_64-efi --efi-directory /mnt/disk1 --boot-directory=/mnt/disk1/boot
Installing for x86_64-efi platform.
Installation finished. No error reported.
ls /mnt/disk1/
EFI/  boot/

UEFIの設定画面で起動順序を変更する

起動順序を変更し、SSDを一番最初に読むこむようにします。

grub2から本体のUbuntuを起動する

以下のコマンドで、本体のカーネルと初期RAMディスクを読み込むようにし、bootします。

set root=(hd1,gpt2)
linux /boot/vmlinuz-4.15.0-45-generic root=/dev/mmcblk0p2
initrd /boot/initrd.img-4.15.0-45-generic
boot

無事、本体のUbuntuが立ち上がりました。 触ってみてなんとなくイメージがつかめたので色々試してみます。

今回はここまで。