web-dev-qa-db-ja.com

GRUB btrfsへの変換後に壊れました

まず、はい、実際、ファイルシステムをext4からbtrfsに変更すると、GRUBとfstabが壊れるのではないかと思いました。

さて、これが起こったことです。ファイルシステムをシームレスにbtrfsに変換しましたが、うまくいきました。 「GRUBエラー:不明なファイルシステム」が表示されるため、起動できないようです。 GRUBとfstabを新しいファイルシステムで更新するように修正するにはどうすればよいですか?

2
Naftuli Kay

これは長くて奇妙なプロセスですが、機能します。

パート1:BIOSブートパーティションの作成。

最初の問題は、GPTパーティションテーブルを使用していることでした。 Linuxをインストールして起動できるからといって、GRUBが正常に機能しているとは限りません。以前に起動できれば問題ないと思いますが、そうではありません。ケース。bios_bootフラグを設定してフォーマットされていないパーティションを作成します。これを行う最善の方法は、ハードディスクに何かをインストールする前に最初から行うことですが、必要な場合でも機能します。後で、ディスクの最後に奇妙なパーティションができますが、ディスクの最初に奇妙なものがあるのが好きです。いずれにせよ、これがあなたがする必要があることです。

GPTはMBRよりも1,000,000倍効率的でインテリジェントである(それでもなお、サポートがはるかに少ない)ため、ディスク上にGRUBインストール用のスペースがありません。通常、= GRUB MBRの後にギャップが必要なため、パーティション間のディスクの先頭に自分自身をインストールします。奇妙なことですか?まったくそうですが、それだけです。始めましょう。

まず、正しいドライブがあることを確認してください/dev/sdXがあなたが思っているドライブであることがわかるまで続行しないでください。デューデリジェンスを行ったので、もう一度やり直してください。念のために3回。では、次に進みましょう。

ここで、parted# apt-get install parted)をインストールし、ドライブをターゲットにして起動します。

$ Sudo parted /dev/sdX

まだ行っていない場合は、ブートレコードラベルをGPTに設定します。

(parted) mklabel gpt

次に、BIOSブート用のパーティションを作成します。私はディスクの先頭に私のものを置いているので、これが私のもののように見えます:

(parted) mkpart primary 0MB 1MB

上記の数値を変更して、パーティションをstartおよびstopにする場所をpartedに指示する必要があります。

それでは、このパーティションにフラグを設定しましょう。パーティション番号を取得するには、partedでprintコマンドを実行することをお勧めします。私の場合、最初のパーティションになるので1なので、フラグを設定する方法は次のとおりです。

(parted) set 1 bios_grub on

これで、このパーティションが作成されたので、この部分は完了です。必要に応じて、次の手順で実際のファイルシステムパーティションを作成できます。

(parted) mkpart primary 1MB 1TB

上記のコマンドは、それが本当にやりたいことであり、まだ何もインストールしていない場合にのみ実行してください。システムが中断している場合は、別のパーティションを作成しないでください。

パート2:GRUBの修正

ここで、GRUBとfstabを修正する必要があります。最初にfstabに取り組みます。LiveCDをロードし、ファイルシステムをLiveCDの/mntにマウントします。

$ Sudo mount /dev/sda /mnt

次に、blkidコマンドを使用して、ハードディスクのUUIDを取得します。

$ Sudo blkid /dev/sda1
UUID="abcdef-1231241241-12124124-12ae21331"

UUIDを取得すると、/etc/fstabが更新されます。 /etc/fstabを開き、UUIDをblkidから取得した新しいもので更新します。ファイルシステムの種類を変更したので、ext4btrfsに置き換えてください。 /が含まれている行を探します。これはルートパーティションであり、微調整したいものです。すごい。

それでは、grubを更新しましょう。

$ Sudo grub-install --root-directory=/mnt /dev/sda

Grubが更新され、ハードドライブにインストールされます。涼しい。次のステップは、GRUB構成ファイルを更新することです。いくつかのシステムパーティションを/mntディレクトリにバインドしましょう。

$ Sudo mount --bind /dev /mnt/dev
$ Sudo mount --bind /sys /mnt/sys
$ Sudo mount --bind /proc /mnt/proc

それでは、ファイルシステムにchrootしてみましょう。

$ Sudo chroot /mnt

これにより、コンピュータがファイルシステムを実行しているかのように、ファイルシステムに効果的にログインできます。次に、grubを更新します。

$ Sudo update-grub2

うまくいけば、それは喜んで解約し、すべてを更新します。涼しい。今、あなたの人生に戻って、あなたの変更をバックアップしてください。あなたの過ちから学びなさい。

4
Naftuli Kay