パーティションを操作したら、 error: unknown filesystem grub rescue> が表示されて、 Linux が起動できなくなったので、復旧方法をメモ  swap は、/etc/fstab で設定変更。 復旧するシステムは、 MBR に NTLDR(Windows) を使い、PBR に GRUB(grub2) を入れて、チェーンロードしています。  * MBR : マスターブートレコード HDDの先頭 BIOS から Call される。  * PBR : パーティションブートレコード パーティションの先頭        MBR は、アクティブパーティションの PBR を Call するが、        NTLDR から、任意の PBR イメージファイルを Call することができる。 Linux が起動されるときの流れ (1) BIOS ↓ (2) MBR ↓ (3) PBR(Windows パーティション) ↓ (4) NTLDR(Windows ドライブC:) メニュー(boot.ini) ↓  Linux を選択 ↓ (5) Linux PBR イメージファイル(Windows ドライブC:) ↓ (6) GRUB(Linux ドライブ) ↓ カーネルを選択 ↓ (7) Linux の起動 Windows パーティションに置いてある Linux パーティションの PBR イメージファイルが、Linux パーティションの GRUB を Call しているので、Linux のパーティションに何らかの変更が加わると GRUB が起動できず、エラーになる。 従って、Linux のパーティションに変更が加わった場合は、「 Linux パーティションの PBR の書き換え」と 「 Windows パーティションの PBR イメージファイルの再作成」が必要となる。 復旧作業は、以下の手順で、応急的に Linux を起動して行う。 grub rescue> set ; 現在の環境設定が確認できる。 ; lsコマンドで、Linux パーティション(boot/)を探す。 ; パーティションの構成がわかっていれば、見つけ易い。 grub rescue> ls (hd0) ... (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) ; の様にパーティション一覧が表示される。 ; パーティション内のファイルを見て、boot/ を探す。 grub rescue> ls (hd0,msdos2)/ lost+found/ etc/ media/ bin/ boot/ ... ; 今回は、(hd0,msdos2) に boot/ が見つかったとする。 ; 手動で環境変数を設定し、GRUB を起動する。 grub rescue> prefix=(hd0,msdos2)/boot/grub grub rescue> root=hd0,msdos2 grub rescue> insmod (hd0,msdos2)/boot/grub/i386-pc/normal.mod grub rescue> normal ; GRUB メニューが表示されたら成功。 ; 目的の Linux を選んで起動させる。 ; Linux が起動したら端末を開いて GRUB を復旧する。 ; GRUB を再インストールする。* 不用意なコピペは注意!パーティション番号をミスすると大変な事になる! sudo grub-install --force /dev/sda2  * GRUB は、PBR へのインストールを推奨していないので "--force" オプションが必要。 ; GRUB の起動メニューを再構築する。* 再構築が必要ない場合もある。 sudo update-grub ; Windows の C: ドライブをマウントして PBR イメージファイルを書き直す。 cd /media/(user)/(C:drive_neme) sudo dd if=/dev/sda2 of=linux.pbr bs=512 count=1 ; 必要があれば、boot.ini を編集する。 C:\linux.pbr="Linux"  * PBR イメージファイルのファイル名や NTLDR のタイトルの文字列は任意でOK。 linux-swap のパーティション番号が変わっていたら、/etc/fstab の編集が必要。 -------------------------------------------------------------------------------------- 2020/12/28 追記 /dev/sda3 に Linux Mint 19.3 をインストールしたら、/dev/sda2 の GRUB が起動しなくなってしまった。 経緯 /dev/sda3 を作るために /dev/sda2 パーティションを操作した。 パーティションを操作した場面では /dev/sda2 から Linux が起動できることは都度確認していた。 /dev/sda3 に Linux Mint 19.3 をインストールしたら /dev/sda2 の GRUB が起動しなくなってしまった。 症状 ブラックスクリーンの左上にカーソルが点滅するのみで、GRUB コマンドも使用不可。 対策 /dev/sda3 の GRUB のメニューから /dev/sda2 の Linux の起動に成功。 /dev/sda2 の Linux から GRUB の再インストール sudo grub-install --force /dev/sda2 pbr ファイルを書き直し cd /media/(user)/(C:drive_neme) sudo dd if=/dev/sda2 of=linux.pbr bs=512 count=1 で、修復できた。 考察 /dev/sda3 に Linux Mint 19.3 をインストールした際、パーティション設定でパーティション前方の空きを 変更した(2MB→0MB)事か、Linux Mint 19.3 の GRUB が、/dev/sda2 に何らかの影響を及ぼしたと思われる。 ※インストールの準備で Gparted で前方の空きなしで /dev/sda3 を作成したはずなのに、インストール中の パーティション設定では、なぜか前方に 2MB の空きがあり、もったいないのでこれを 0MB に変えてしまった。 その際、/dev/sda3 の数値に変化はなかった。 -------------------------------------------------------------------------------------- GRUB メニューの 表示/非表示、表示タイムアウト時間の変更 方法 (1) /etc/default/grub を編集する。 sudo vi /etc/default/grub [設定内容」 GRUB_HIDDEN_TIMEOUT=0 ← GRUB メニューを表示させない。 #GRUB_HIDDEN_TIMEOUT=0 ← GRUB メニューを表示させる。 GRUB_TIMEOUT=10 ← GURB メニューを表示して待機する時間。 GRUB_DISABLE_RECOVERY=true ← リカバリー用のメニューを生成しない。 GRUB_DISABLE_LINUX_UUID=true ← Linuxカーネル用のメニューエントリーでメディアの指定にUUIDを使用しない。 GRUB_DISABLE_UUID=true ← メニューエントリーでメディアの指定にUUIDを使用しない。 GRUB_DISABLE_OS_PROBER=true ← 他 OS の検出を行わない。 (2) sudo update-grub で、変更を GRUB に反映させる。 ※ /boot/grub/grub.cfg が、置き換えられる。 [説明] GRUB のメニュー本体は、/boot/grub/grub.cfg だが、このファイルは編集しないよう注釈されている。 update-grub が、/etc/grub.d/ 中にあるスクリプトを使って、grub.cfg を生成する仕組みになっている。 その際の動作設定が、/etc/default/grub である。 /etc/default/grub を直接編集する以外に、設定値を変更するコマンドもある。 ※ update-grub は、GRUB2 以降で使用できるコマンドで、それ以前は、grub-mkconfig を使用していた。 GRUB2 でも grub-mkconfig は使用できる。 grub-mkconfig も、動作内容は、update-grub と同様であるが、いきなり /boot/grub/grub.cfg を上書きせず、 実行結果を標準出力に出す。そのため、結果の確認に使いたい。 grub-mkconfig の実行結果をファイルへ出力する際は、-o オプションを付ける。 (例) sudo grub-mkconfig -o /boot/grub/grub.cfg 最後に、次のコマンドで、GRUB メニューをデフォルトの状態に設定することもできる。? sudo grub-set-default これについては、まだ、よくわからない。