まず、はい、実際、ファイルシステムをext4からbtrfsに変更すると、GRUBとfstabが壊れるのではないかと思いました。
さて、これが起こったことです。ファイルシステムをシームレスにbtrfs
に変換しましたが、うまくいきました。 「GRUBエラー:不明なファイルシステム」が表示されるため、起動できないようです。 GRUBとfstabを新しいファイルシステムで更新するように修正するにはどうすればよいですか?
これは長くて奇妙なプロセスですが、機能します。
最初の問題は、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
上記のコマンドは、それが本当にやりたいことであり、まだ何もインストールしていない場合にのみ実行してください。システムが中断している場合は、別のパーティションを作成しないでください。
ここで、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
から取得した新しいもので更新します。ファイルシステムの種類を変更したので、ext4
もbtrfs
に置き換えてください。 /
が含まれている行を探します。これはルートパーティションであり、微調整したいものです。すごい。
それでは、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
うまくいけば、それは喜んで解約し、すべてを更新します。涼しい。今、あなたの人生に戻って、あなたの変更をバックアップしてください。あなたの過ちから学びなさい。