GRUB сломался после преобразования в btrfs
Во-первых, да, я действительно подозревал, что изменение моей файловой системы с ext4 на btrfs сломает GRUB и fstab.
Теперь вот что случилось. Я легко преобразовал файловую систему в btrfs
и это сработало отлично. Теперь я не могу загрузиться, так как получаю "Ошибка GRUB: неизвестная файловая система". Как я могу исправить GRUB и fstab для обновления с новой файловой системой?
1 ответ
Это долгий и странный процесс, но он работает.
Часть первая: создание загрузочного раздела 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
Надеюсь, он с радостью откачается и все обновит. Здорово. Теперь вернитесь к своей жизни и сделайте резервную копию ваших изменений. Учись на своих ошибках.