2022/10/14 | |
USB から起動した GRUB で、HDD(SSD) 内の Linux を起動し、HDD(SSD) 内の GRUB を修復する | |
※ ここで言う GRUB は、GRUB2 のことです。
HDD(SSD) 内の GRUB が壊れて、Linux が起動できなくなったので、GRUB を修復する方法をまとめました。 前提として、HDD(SSD) 内のファイルは正常で、GRUB のみが破損しているものとします。 症状は、GRUB メニューが出ず、プロンプトも何も出ず、画面左上でカーソルが点滅したまま停止する状態です。 1.まず、GRUB が起動できる USB メモリーがある場合から説明します。
GRUB 起動用の USB メモリーの作成方法は後述します。 (1) HDD(SSD) 内の Linux を起動する方法。 @ USB から GRUB を起動し、"c"キーで、grub> コマンドラインモードに入ります。
(2) Linux が起動したら、ターミナルから GRUB を修復します。A HDD(SSD) 内の grub.cfg ファイルを検索します。 今回、Linux の場合、/boot/grub/grub.cfg とします。フルパスで指定する必要があります。 grub> search --file /boot/grub/grub.cfg 得られた結果から、起動目標の HDD(SSD) 及びパーティション番号を確認します。例:(hdX,msdosX) B 見つけた grub.cfg ファイルで、GRUB メニューを立ち上げます。 grub> configfile (hdX,msdosX)/boot/grub/grub.cfg C 目的の GRUB メニューが表示さらたら、通常通り Linux を起動できるはずです。 ※ 上記のメニューが表示されなかったり、起動できない場合は、残念ながらこの方法は通用しないということです。 @ GRUB の再インストール。
※ 必要に応じて下記のどちらかを実行してください。間違えると大変ですので、慎重に行ってください。 $ sudo grub-install --force /dev/sdaX (例) pbr へのインストール $ sudo grub-install /dev/sda (例) mbr へのインストール A pbr の場合、必要に応じて、マルチブート用ファイルの再作成。 $ sudo dd if=/dev/sdaX of=sdaX.pbr bs=512 count=1 (3) システムを再起動し、HDD(SSD) から起動できれば、GRUB の修復は成功です。 2.GRUB 起動用の USB メモリーを作成する方法。 GURB 起動用の USB メモリーを作成する場合、PC のシステムが BIOS か UEFI かによって方法が異なってきます。 (1) UEFI 用 ※ 2通りの方法があります。どちらかの方法で作成してください。
@ UEFI と BIOS の両方から iso イメージファイルを起動できる、grub2 メニューの USB メモリーの作り方 を参照してください。
(2) BIOS 用A Linux_Live.iso イメージを USB メモリーに書き込む方法です。 USB メモリーの /dev/ 名を確認して、ISOイメージを書き込みます。(例)/dev/sdX $ sudo dd if=Linux_Live.iso of=/dev/sdX bs=4M; sync @ USB メモリーの /dev/ 名を確認して、Gparted で、USB メモリーにパーティションを作成します。(例)/dev/sdX ・ msdos 形式でパーティションテーブルを作成します。 ・ プライマリーパーティションを作成します。/dev/sdX1 ※ Gparted で、FAT パーティションが作成できない場合は、パーティションを未フォーマットで作成し、 ターミナルのコマンドで FAT でフォーマットします。
A Gparted で、/dev/sdX1 にラベルを付けます。(例)LABEL$ sudo mkfs -t fat /dev/sdX1 B USB メモリーをマウントします。(例)/media/user/LABEL C USB メモリーに GRUB をインストールします。 $ sudo grub-install --boot-directory=/media/user/LABEL/boot /dev/sdX 3.別の修復方法として、Linux_Live-DVD/USB から起動し、そこから HDD(SSD) へ GRUB を再インストールする方法を記します。
GRUB を再インストールしたい、パーティションを調べておいてください。(例)/dev/sda2
Live 起動した Linux のターミナルから下記を実行します。 $ sudo mount /dev/sda2 /mnt $ sudo mount --bind /dev /mnt/dev $ sudo mount --bind /dev/pts /mnt/dev/pts $ sudo mount --bind /proc /mnt/proc $ sudo mount --bind /sys /mnt/sys $ sudo mount --bind /run /mnt/run $ sudo chroot /mnt ※ 下記のどちらかを実行します。間違えると大変なので慎重に行ってください。 # grub-install --force /dev/sda2 (例) pbr へのインストール # grub-install /dev/sda (例) mbr へのインストール twitter kn_ishi
|