はじめに
私はROS(Robot Operating System)ユーザであるためWindows/MacとUbuntuとのデュアルブートで使う機会が多い。もちろん、たまにブートローダやパーティション情報が吹っ飛び文鎮化します。私の経験の中で起きたトラブルを元にいくつか対象方法をメモしておきます。
この記事が、急に動かなくなったPCの前で途方に暮れている誰かの参考になればと思います。
対処法
症状:起動ディスクとして認識してくれない。
対処法:ブートローダを直す。(ここでは、UEFIブートについて記述します。)
1. LiveUSBでUbuntuを起動する。
日本ミラーから落とすと早いので、なるべく日本ミラーから落としましょう。例)Ubuntu Releases(日本ミラー:富山大学)
2. ターミナルを開く
3. どのディスクを使っているか確認する。(ルートのディスクを確認する。この場合は/dev/sda1(BL)と/dev/sda4(Root))
$ df -h
/dev/sda4 118G 60G 52G 54% /
/dev/sda1 197M 33M 164M 17% /boot/efi
4. 次のコマンドを実行
- やっている事的には、内容的には生きているディスクをマウントして、chrootで動かしてブートローダを再インストールしている。
- この方法は当たり前ですが、ディスク自体が死んでいる場合は無効です。
SATA形式のディスク
$ sudo mount /dev/sda4 /mnt # root
$ sudo mount /dev/sda1 /mnt/boot/efi # BL
$ sudo mount -B /dev /mnt/dev # DIRs
$ sudo mount -B /dev/pts /mnt/dev/pts
$ sudo mount -B /proc /mnt/proc
$ sudo mount -B /sys /mnt/sys
$ sudo mount -B /run /mnt/run
$ sudo cp /etc/resolv.conf /mnt/etc/
$ sudo chroot /mnt
$ apt install --reinstall grub-efi-amd64 linux-generic linux-headers-generic
$ update-initramfs -c -k all
$ sudo update-grub
NVMe形式のディスク
ディスク番号で悩んで、途方に暮れてた経験があったのでNVMeもついでに記載。df -h
で調べる大前提は変わりませんが、nvme?n?p?
という基本フォーマットを事前に知っているだけでも大分安心感が違うはず。
$ sudo mount /dev/nvme0n1p2 /mnt # root
$ sudo mount /dev/nvme0n1p1 /mnt/boot/efi # BL
$ sudo mount -B /dev /mnt/dev # DIRs
$ sudo mount -B /dev/pts /mnt/dev/pts
$ sudo mount -B /proc /mnt/proc
$ sudo mount -B /sys /mnt/sys
$ sudo mount -B /run /mnt/run
$ sudo cp /etc/resolv.conf /mnt/etc/
$ sudo chroot /mnt
$ apt install --reinstall grub-efi-amd64 linux-generic linux-headers-generic
$ update-initramfs -c -k all
$ sudo update-grub
終わりに
新しいピンチに出会ったらまた追記します。