先日研究室で夜中作業していたときに起こった惨事とその解決法について
#何が起こったのか
誤ってパーティションを破壊してしまった。
深夜0時ごろ、ラズパイで遊んでいた友達からSDの中身を消してフォーマットしてくれと頼まれ、
重い目をこすりながらSDをいじった際に何を思ったか誤ってEFIのシステムパーティションを消し去ってしまった。(/boot/efi以下の部分が全て消えていた)
記事をご覧の皆さんはこんなヘマはしないだろうが、この時の解決策を載せておきます。
#EFI System Partition とは
消えたEFI System Partitionがどのような役割を担っていたのか
EFI System Partition(archlinux)によると、
EFI System Partition (ESP や EFISYS とも呼ばれます) は FAT32 でフォーマットされた物理パーティション (ディスクのメインのパーティションディスクで、LVM やソフトウェア RAID などとは異なります) でここから UEFI ファームウェアは UEFI ブートローダやアプリケーションを起動します。OS とは独立したパーティションであり、UEFI ブートには必須のパーティションになります。
自分がかなりやばい部分を消してしまったという事実を再認識したところで、解決策を見つけたので書いていく。
(ちなみに、焦りからかこの時点でようやく眠気が引いてきた)
#解決手順
##①パーティション作り直し
もともとシステムが存在していたところに、新たにパーティションを作成します。
ファイルシステム:FAT32、フラグ:boot
##②環境の変更:chroot
ブートローダーを再構築するための下準備
sudo -s
mkdir /chroot
mount /dev/sda2 /chroot
mount --bind /dev /chroot/dev
mount --bind /dev/pts /chroot/dev/pts
mount --bind /proc /chroot/proc
mount --bind /sys /chroot/sys
mount --bind /run /chroot/run
chroot /chroot
##③ブートに必要なgrubをインストール
まず、①のパーティションをマウント ー> grubをインストール
mount /dev/sda1 /boot/efi
grub-install --efi-directory=/boot/efi
update-grub
以上の手順で /boot/efi 以下が復帰します。
※まだ再起動はかけてはいけません※
##④/etc/fstabの変更
/etc/fstab 中のUUIDを変更します
UUIDを確認して、書き換えます。
blkid /dev/sda1
vim /etc/fstab
#終わり
下に載せますが、ほぼ他人様のサイトを参考にしています。
今回の惨事を乗り越えて思ったのは、
「眠すぎるときにPCはいじらない」