ので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に何が起きているのかを正確に把握する。
-
ライブUSBから起動 PCにインストールされているOSとは独立した、USBメモリ上のUbuntuシステムを起動しました。これにより、PC本体のディスクを安全に外部から操作できます。
-
パーティション情報の確認 ターミナルで以下のコマンドを実行。
sudo fdisk -l
この結果、
The primary GPT table is corrupt, but the backup appears OK
という決定的なメッセージが見つかり、GPT破損が原因であると確定しました。
Step 2: GPT(パーティション設計図)の修復
目的: 正常なバックアップデータを使い、破損したメインのGPTテーブルを復元する。
-
専門ツール
gdisk
の起動 GPTを直接編集できるgdisk
を、対象のディスク(/dev/nvme0n1
)に対して起動しました。sudo gdisk /dev/nvme0n1
-
バックアップテーブルの読み込みと書き込み
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のファイルシステムに接続しました。
-
Ubuntu本体(ルート)のマウント PCのUbuntuシステムが入っているパーティション(
/dev/nvme0n1p2
)を、ライブUSBの/mnt
フォルダに接続しました。sudo mount /dev/nvme0n1p2 /mnt
-
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の修復
-
chroot
の実行 準備が整った/mnt
を新しいルートとして、PC本体のUbuntuシステムに入りました。sudo chroot /mnt
-
GRUBの再インストール
chroot
環境内で、GRUBのブートローダーファイルをEFIパーティションに書き込み直しました。grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck
-
GRUB設定ファイルの更新 ディスク内のOS(UbuntuとWindows 11)を自動検出し、起動メニューのリストを最新の状態に更新しました。
update-grub
4.4. 終了処理
-
chroot
からの離脱exit
コマンドで本体のUbuntuシステムから抜け、ライブUSBのターミナルに戻りました。exit
-
PCの再起動 最後にPCを再起動し、USBメモリを抜いて全作業を完了しました。
sudo reboot
以上の手順により、破損したディスクの根本的な問題から、それに付随する起動プログラムの問題までを段階的に解決し、システムを完全に復旧させることができました。大変な作業お疲れ様でした。
ここはおれの日記帳
おわり