Ubuntu 16.04: GRUB2を復旧する


Table of Contents

1 LiveDVDの起動

Ubuntu 16.04のLiveDVD(ubuntu-16.04.1-desktop-amd64.iso等)で起動し、Try UbuntuでLiveDVDを起動します。

2 ストレージのマウント

HDDやSSDのUbuntuをインストールしたストレージをマウントします。この記事では仮想環境のVirtIOストレージを用いており、ストレージは/dev/vdaとして見えます。実機環境の場合は/dev/sdaになると思います。

LVMを使っている場合は/dev/vda1に/boot、/dev/vda5にLVMボリューム、/dev/ubuntu-vg/rootにルートファイルシステムがインストールされてます。LVMを使っていない場合は/dev/vda1に/boot、/dev/vda5にルートファイルシステムがインストールされています。

$ sudo mount -o rw /dev/ubuntu-vg/root /mnt # In case non-lvm is /dev/vda5$ sudo mount -o rw /dev/vda1 /mnt/boot$ for fs in proc sys dev; do sudo mount -o bind /$fs /mnt/$fs; done

3 /etc/default/grubの復旧

/etc/default/grubはgrub-mkconfigで使用するgrub.cfgの変数を定義しています。/etc/default/grubの編集でGRUB2が立ち上がらなくなった場合は、LiveDVDのものをコピーしてください。Ubuntu 16.04をインストールした直後はLiveDVDの/etc/default/grubがそのままコピーされています。

$ sudo cp /etc/default/grub /mnt/etc/default/

4 chrootの実行

ルートファイルシステムにchrootします。

$ sudo chroot /mnt

5 lvm2-lvmetadの起動

LVMの場合はgrub-mkconfigで/etc/init.d/lvm2-lvmetadが動いている必要があります。

# /etc/init.d/lvm2-lvmetad start

6 GRUB2の復旧

GRUB2を再インストールします。

# sudo apt install -y grub2 –reinstall

grub-installでMBRと/bootににGRUB2のファイルを書き込みます。

# grub-install /dev/vdaInstalling for i386-pc platform.Installation finished. No error reported.

grub-mkconfigでGRUB2のメニューを更新します。

# grub-mkconfig -o /boot/grub/grub.cfgGenerating grub configuration file …Found linux image: /boot/vmlinuz-4.4.0-42-genericFound initrd image: /boot/initrd.img-4.4.0-42-genericFound linux image: /boot/vmlinuz-4.4.0-38-genericFound initrd image: /boot/initrd.img-4.4.0-38-genericFound linux image: /boot/vmlinuz-4.4.0-31-genericFound initrd image: /boot/initrd.img-4.4.0-31-genericFound memtest86+ image: /memtest86+.elfFound memtest86+ image: /memtest86+.bindone

Android | Linux | SDL - Narrow Escape