2

Во-первых, да, я действительно подозревал, что изменение моей файловой системы с ext4 на btrfs сломает GRUB и fstab.

Теперь вот что случилось. Я без проблем конвертировал файловую систему в btrfs и это прекрасно работало. Теперь я не могу загрузиться, так как получаю «Ошибка GRUB: неизвестная файловая система». Как я могу исправить GRUB и fstab для обновления с новой файловой системой?

1 ответ1

4

Это долгий и странный процесс, но он работает.

Часть первая: создание загрузочного раздела BIOS.

Первая проблема заключалась в том, что я использую таблицу разделов GPT. То, что вы можете установить Linux и загрузить его как-то, не означает, что GRUB работает нормально. Я бы предположил, что если бы я мог загрузиться ранее, то все в порядке, но это не совсем так. Создайте неотформатированный раздел с установленным флагом bios_boot . Лучший способ сделать это с самого начала, прежде чем устанавливать что-либо на жесткий диск, но он все равно будет работать, если вам понадобится сделать это позже, хотя у вас будет странный раздел в конце вашего диска. , Мне нравятся странные вещи, которые должны быть в начале диска. В любом случае, вот что вам нужно сделать.

Из-за того, что GPT в 1 000 000 раз более эффективен и интеллектуален (и все же почему-то гораздо менее поддерживается), чем MBR, на диске нет места для установки GRUB. Обычно GRUB устанавливается в начале промежуточных разделов диска из-за того, что MBR требует промежутка после него. Weird? В общем, но так оно и есть. Давайте начнем.

Во-первых, убедитесь, что у вас есть правильный диск. Не продолжайте, пока не узнаете, что /dev/sdX - это диск, который, как вы думаете, есть. Теперь, когда вы провели должную осмотрительность, сделайте это снова. Три раза, просто чтобы быть уверенным. Хорошо, давайте двигаться дальше.

Теперь установите parted (# apt-get install parted) и запустите его, ориентируясь на ваш диск:

$ sudo parted /dev/sdX

Если вы этого еще не сделали, установите метку загрузочной записи на GPT:

(parted) mklabel gpt

Затем создайте раздел для загрузки BIOS. Я помещаю мой в начало диска, так вот как выглядит мой:

(parted) mkpart primary 0MB 1MB

Вы должны изменить числа выше, чтобы сообщить parted, где вы хотите, чтобы раздел начинался и останавливался соответственно.

Теперь давайте установим флаг для этого раздела. Вы можете запустить команду print в parted, чтобы получить номер раздела. В моем случае это 1 так как это будет первый раздел, поэтому вот как мы установили для него флаг:

(parted) set 1 bios_grub on

Хорошо, теперь, когда вы создали этот раздел, мы закончили с этой частью. Если вы хотите, вы можете создать свой фактический раздел файловой системы, выполнив следующие действия:

(parted) mkpart primary 1MB 1TB

Запускайте приведенную выше команду, только если это то, что вы действительно хотите сделать, и вы еще ничего не установили. Если у вас есть разорванная система, не создавайте другой раздел.

Часть вторая: установка GRUB

Теперь вам нужно исправить GRUB и fstab. Сначала мы займемся fstab. Загрузите Live CD и смонтируйте вашу файловую систему в /mnt на Live CD.

$ sudo mount /dev/sda /mnt

Теперь получите UUID для вашего жесткого диска с помощью команды blkid :

$ 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

Теперь давайте перейдем к вашей файловой системе.

$ sudo chroot /mnt

Это эффективно войдет в вашу файловую систему, как если бы ваш компьютер ее запускал. Далее обновите grub.

$ sudo update-grub2

Надеюсь, он с радостью откачается и все обновит. Здорово. Теперь вернитесь к своей жизни и сделайте резервную копию ваших изменений. Учись на своих ошибках.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .