Изменение корня на новые разбиения разбиений на жестком диске

Поскольку set имеет вывод, а which set ничего не возвращает, вы знаете, что это часть используемой оболочки, скорее всего, bash.

man bash упоминает его много раз, но проще дать ссылку на него в онлайновой документации.

Эта встроенная функция настолько сложна, что заслуживает отдельного раздела. set позволяет вам изменять значения опций оболочки и устанавливать позиционные параметры, или отображать имена и значения переменных оболочки переменных.

set имеет спецификацию вызова:

set [--abefhkmnptuvxBCEHPT] [-o option-name] [argument …]
set [+abefhkmnptuvxBCEHPT] [+o option-name] [argument …]

так что если вы хотите найти его в man в командной строке, вы можете искать с

/set.*abef

0
12.12.2018, 17:43
1 ответ

Предполагая, что вы используете grub2, самый важный файл конфигурацииgrub.cfg(обычно находится в каталоге /boot/grubдля систем на основе BIOS и /boot/efi/EFI/<os name>/для систем efi ). Когда компьютер запускается, grub следует инструкциям из этого файла. Это всего лишь текстовый файл, поэтому вы можете редактировать его вручную или использовать какой-либо автоматический инструмент (сценарий оболочки )grub-mkconfig(, также известный как grub2-mkconfig), который создает конфигурацию в соответствии с правилами, определенными в файле /etc/default/grubи /etc/grub.d/. каталог.

В любом случае, если вы изменили корневой раздел, нужно позаботиться о нескольких вещах. Во-первых, на параметры ядра Linux :grub напрямую не влияет корневой раздел, но ему нужно передать правильный путь к ядру, поэтому ищите строку, подобную этой

linux /vmlinuz-4.19.5 root=/dev/sda1

и измените его на /dev/sda2.

Его также можно передать в виде UUID:

linux /vmlinuz-4.19.5 root=UUID=abcdefgh-ijkl-mnop-qrst-uvwxyz

Вы можете проверить корневой UUID с помощью команды grub:

grub-probe --target=fs_uuid /

Второе, что нужно проверить/изменить, это сам файл ядра. Он может находиться на отдельном разделе (, обычно /boot), или на корневом (/). В последнем случае вам нужно искать строку

set root='hd0,gpt1'

и измените gpt1на gpt2. (Здесь я предположил, что у вас есть только один диск hd0и вы используете таблицу разделов GUID, стандарт в настоящее время ).

В зависимости от вашей конфигурации вам также может понадобиться изменить UUID файловой системы и строку подсказки, чтобы найти правильный путь к ядру.Это может выглядеть так

search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt1' --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  abcd-efgh
search --no-floppy --fs-uuid --set=root abcd-efgh

Новый UUID, который вы уже знаете, используйте grub-probe --target=hints_string /, чтобы найти правильное значение строки подсказок -.

2
28.01.2020, 02:31

Теги

Похожие вопросы