真・フランス料理紹介ブログ
2025-08-11

のでgeminiに直してもらった 以下メモ用 ぜんぜんよくわかってない 読む価値無し

対象端末:こいつ
事象ざっくり:ubuntu24とwin10が同居してるpcをflyby11でwin11にアプデしたらwin側は正常に11になったけどubuntuはデスクトップ環境が起動せずcliでbusyboxしか上がらない状況になった lsblk -l -o +uuidしてもルートにマウントされてるデバイスのuuidが出ない

以下直してもらった様子 別に大事なデータとか無いので言われるがまま


Ubuntu起動トラブルの修復手順まとめ

背景:何が問題だったのか?

Windows 11への特殊な方法でのアップデートが、ディスク全体の設計図である**GPT(GUIDパーティションテーブル)**を破損させたことが根本的な原因でした。

PCの電源を入れると、まずUEFIというシステムが起動し、GPTを読み込んで「どのOSをどこから起動するか」を判断します。しかし、そのGPTが壊れていたため、UEFIはUbuntuの起動プログラム(GRUB)を正しく見つけられず、結果としてUbuntuのシステム本体(ルートファイルシステム)の場所もわからなくなり、uuid not foundというエラーで停止していました。

今回の修復作業の目的は、**「①壊れた設計図(GPT)を直し、②起動の案内役(GRUB)に正しい情報を教え直す」**ことでした。


Step 1: 診断と原因特定

目的: PCに何が起きているのかを正確に把握する。

  1. ライブUSBから起動 PCにインストールされているOSとは独立した、USBメモリ上のUbuntuシステムを起動しました。これにより、PC本体のディスクを安全に外部から操作できます。

  2. パーティション情報の確認 ターミナルで以下のコマンドを実行。

    sudo fdisk -l

    この結果、The primary GPT table is corrupt, but the backup appears OKという決定的なメッセージが見つかり、GPT破損が原因であると確定しました。


Step 2: GPT(パーティション設計図)の修復

目的: 正常なバックアップデータを使い、破損したメインのGPTテーブルを復元する。

  1. 専門ツール gdisk の起動 GPTを直接編集できるgdiskを、対象のディスク(/dev/nvme0n1)に対して起動しました。

    sudo gdisk /dev/nvme0n1
  2. バックアップテーブルの読み込みと書き込み gdiskの対話モードで、以下のコマンドを順に実行しました。

    • r:リカバリー(修復)メニューに切り替え。
    • c:正常なバックアップテーブルをメモリ上に読み込み。
    • p:読み込んだパーティション情報が正しいか一覧表示して確認。
    • w:メモリ上の正しい情報をディスクに書き込んで保存。破損したメインテーブルが上書き修復されました。

Step 3: システムの再認識

目的: GPT修復後のディスク情報をOSに正しく再認識させる。

gdiskによる修復直後、ライブUSBのOSがディスク状態の変化に追いつけず、マウントエラーが発生しました。 これを解決するため、PCを再起動し、再度ライブUSBから起動しました。これにより、修復済みのクリーンなディスク情報がOSに認識されるようになりました。


Step 4: GRUB(起動の案内役)の再インストール

目的: 修復したGPTを元に、UbuntuとWindowsを起動するためのメニュー(GRUB)を再構築する。

4.1. chroot環境の準備 (マウント)

chrootは、ライブUSBからPC本体のUbuntuシステムにログインし、直接コマンドを実行するための技術です。その準備として、必要なパーティションをライブUSBのファイルシステムに接続しました。

  1. Ubuntu本体(ルート)のマウント PCのUbuntuシステムが入っているパーティション(/dev/nvme0n1p2)を、ライブUSBの/mntフォルダに接続しました。

    sudo mount /dev/nvme0n1p2 /mnt
  2. EFIシステムパーティションのマウント UEFIが参照する起動プログラムが格納されているEFIパーティション(/dev/nvme0n1p1)を、先ほど接続したUbuntuシステム内の/boot/efiフォルダに接続しました。

    sudo mount /dev/nvme0n1p1 /mnt/boot/efi

4.2. システム機能の共有 (バインドマウント)

chroot環境内からデバイス情報やプロセス情報といったOSの核となる機能にアクセスできるようにするため、ライブUSBのシステムディレクトリを/mnt以下に共有(バインドマウント)しました。この手順が抜けると、chroot環境内でgrub-installなどの重要なコマンドが正しく動作しません。

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

4.3. chroot環境への移行とGRUBの修復

  1. chrootの実行 準備が整った/mntを新しいルートとして、PC本体のUbuntuシステムに入りました。

    sudo chroot /mnt
  2. GRUBの再インストール chroot環境内で、GRUBのブートローダーファイルをEFIパーティションに書き込み直しました。

    grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck
  3. GRUB設定ファイルの更新 ディスク内のOS(UbuntuとWindows 11)を自動検出し、起動メニューのリストを最新の状態に更新しました。

    update-grub

4.4. 終了処理

  1. chrootからの離脱 exitコマンドで本体のUbuntuシステムから抜け、ライブUSBのターミナルに戻りました。

    exit
  2. PCの再起動 最後にPCを再起動し、USBメモリを抜いて全作業を完了しました。

    sudo reboot

以上の手順により、破損したディスクの根本的な問題から、それに付随する起動プログラムの問題までを段階的に解決し、システムを完全に復旧させることができました。大変な作業お疲れ様でした。


ここはおれの日記帳
おわり

引っ越しした夏コミ(c106)行った日記
Moyatto