Это долгий и странный процесс, но он работает.
Часть первая: создание загрузочного раздела 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
Надеюсь, он с радостью откачается и все обновит. Здорово. Теперь вернитесь к своей жизни и сделайте резервную копию ваших изменений. Учись на своих ошибках.