2011年ごろのノートパソコン(もともとWindows 7)にLinuxを入れることにしました。
ところが、なかなか素直に入りません。
なんとかHDDから起動できましたが、途中で何度も起動に失敗しました。
今のLinux環境ならではの落とし穴があったのでメモしておきます。
1. 古いBIOSとMBRパーティションの問題
今回使ったパソコンは2011年頃の機種で、従来型のBIOSを使っています。
このタイプのBIOSでは、MBRパーティションでないと正常に起動できません。
MBRはMaster Boot Recordの略で、ディスクの先頭に起動情報を書き込む方式です。
1.1. USBブートができない?
まず、LinuxをUSBブートするのも一苦労でした。
当初は、macOSのbalenaEtcherでLubuntuのLiveUSBを作ったのですが、起動しません。
Xubuntu, Linux Liteと試し、書き込みもWindowsのRufusに切り替えて試しました。
最終的にRufusでLinux MintのブートUSBを作り、MBRに対応した書き込みオプションを設定することでうまくいきました。
2. インストール後に起動しない
次に、Linux Mintの中で、システムのインストールです。
Linux Mintのインストール自体は、何事もなく完了しましたのですが、再起動すると、次のような画面で止まりました。
Boot Failed. P1-TOSHIBA MK5065GSXN
Boot Failed. P4-HL-DT-ST BD-RE BT10F
Boot Failed. FDD
Boot Failed. Realtek Boot Agent
HDDが認識されているのに、どれも起動できない状態です。
この時点では、GRUBが壊れているのか、インストールが失敗したのか判断がつきませんでした。
2.1. GRUBを入れ直そうとして詰まった
Live USBで起動し、chrootを使ってGRUBを入れ直そうとしました。
sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install --target=i386-pc /dev/sda
ところが、次のエラーが出ました。
this GPT partition label contains no BIOS Boot Partition
Embedding is not possible.
grub-install: error: will not proceed with blocklists.Code language: JavaScript (javascript)
ここで初めて、ディスクがGPTのままになっていることに気づきました。
GPartedを開くと、パーティションテーブルがGPTになっていました。
インストール時にディスクを全削除したつもりでも、実際にはGPTが自動的に作られていたようです。
インストーラは起動方式に合わせて完全に切り替えてくれるわけではなく、既存のディスク構成や起動モードに影響されます。
2.2. MBRに戻すためにやったこと
一度ディスクを完全に初期化し、明示的にMBRに戻すことにしました。
作業はLive USBから行っています。
まず、マウントされているものを外します。
sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/sys
sudo umount /mnt
次に、GPTの痕跡を消します。
sudo wipefs -a /dev/sda
念のため、ディスク先頭もゼロクリアしました。
sudo dd if=/dev/zero of=/dev/sda bs=1M count=10Code language: JavaScript (javascript)
最後に、パーティションテーブルをMBRに変更します。
sudo parted /dev/sda mklabel msdos
GPartedで確認すると、パーティションテーブルがmsdosになっていました。

2.3. 再インストール時に気をつけたこと
この状態でLinux Mintのインストールをやり直しました。
パーティションは単純にext4を1つ作り、マウントポイントは/に設定しています。

インストール中にEFI System Partitionが見つからないという警告が出ますが、BIOS環境では問題ありません。
ブートローダのインストール先が/dev/sdaになっていることだけは、念のため確認しています。
インストール完了後に再起動すると、今度はHDDから正常に起動しました。
GRUBの画面も表示され、そのままLinux Mintが立ち上がります。