LoginSignup
49
53

More than 3 years have passed since last update.

Ubuntu でboot ローダを再インストールする

Last updated at Posted at 2018-05-08

Ubuntu のブートローダ及び/boot パーティションを再インストールする

Ubuntu のパッケージアップデート時やオペレーションミス等でLinux が起動しなくなってしまうような状況に陥ってしまった時、諦めてUbuntu を再インストール…ということは無いでしょうか。
その環境、まだ直るかもしれません。
今回はUbuntu16.04 LTS で検証しました。

前提条件

前提条件としてルート("/")のファイルシステムは壊れていないことが前提です。
今回はUbuntu16.04 LTS で以下のデバイス構成でEFI ブートで起動していたものを実際に復旧してみましょう。

/dev/sda1     /boot/efi
/dev/sda2     /boot
/dev/sda3     /

なお、BIOS ブートな環境では/boot/efi のデバイスがありませんが、基本的にEFI のときと同じ手順で実施可能です。

Live USB の作成

Ubuntu16.04 LTS のデスクトップ版(今回はubuntu-14.04.5-desktop-amd64.iso)をダウンロードしてUSB 等のメディアに焼いてください。本手順は説明を割愛します。
USB をマシンに挿したら、マシンの電源を入れてUSB からUbuntu を起動するようにしてください。

Live USB からUbuntu desktop の起動

Live USB から起動したらTry Ubuntu (without installing) を選択してください。
そこからターミナルを開いてroot ユーザにて作業をしていきます。

rootユーザになる
$ sudo su -

デバイスのマウント

復旧したいOS がインストールされているデバイスをマウントしていきます。

mount
# mount /dev/sda3 /mnt
# mount /dev/sda2 /mnt/boot
# mount /dev/sda1 /mnt/boot/efi

その他クリティカルな部分もマウントしていきます。

/dev/dev/pts/proc/sys/runのマウント
# for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

マウントが完了したらマウントしたディレクトリにchroot で入っていきます。

chroot
# chroot /mnt

Linux kernel のインストール

インストールされていたkernel を確認します。

dpkg
$ dpkg --list | grep linux-image
ii  linux-image-4.4.0-116-generic        4.4.0-116.140                              amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-116-generic  4.4.0-116.140                              amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP

今回再インストールするkernel は4.4.0-116 で行っていきます。
kernel を確認したら/boot 領域を一旦全部削除します。

/bootの削除
$ rm -rf /boot/*

// @lunablanca さんのコメントより注釈追記。
// aptの管理外でファイルを削除することになるので、この方法だと、/boot/grub以下に存在する必要な構成ファイル(テーマなど)まで消してしまいます。
// このため、特定のファイルのみ消すか、aptで不要なカーネルなどを削除するようにすべきです。
// もし、それらも削除してしまった場合は、reinstall お願いします。

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

kernelの再インストール
# apt-get install --reinstall linux-image-4.4.0-116-generic

grub ローダをインストールします。

grub-install
# grub-install --recheck /dev/sda
# update-grub

以上で完了です。

# exit      # <- chroot を抜ける
# shutdown -h now

chroot を抜けてシャットダウンして、USB ディスクを抜いてマシンの電源を入れてみましょう。
ubuntu が起動してくるはずです。

参考

49
53
2

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
49
53