Вопрос или проблема
Я играюсь с grub и меняю root, используя:
root (hda,x)
как мне узнать, чему равно x для /dev/sda7
?
fdisk -l
Device Boot Start End Blocks Id System /dev/sda1 * 1 1958 15727603+ 7 HPFS/NTFS /dev/sda2 1959 7476 44323335 f W95 Ext'd (LBA) /dev/sda5 1959 4569 20972826 7 HPFS/NTFS /dev/sda6 4570 5352 6289416 83 Linux /dev/sda7 6373 7119 6000246 83 Linux /dev/sda8 7120 7476 2867571 83 Linux /dev/sda9 5353 6135 6289416 83 Linux /dev/sda10 6136 6372 1903671 82 Linux swap / Solaris
проблема в том, что в Gparted порядок не как sda5, sda6, sda7, …
а порядок такой:
- sda6
- sda9
- sda10
- sda7
- sda8
так чему равно x для /dev/sda7
?
Во-первых, вам нужно понять, что в grub не используются обычные идентификаторы жестких дисков Linux. Вместо этого буквы коррелируют с числами, начиная с нуля (например, hda
= hd0
, hdb
= hd1
и т. д.).
Во-вторых, в grub-legacy номер раздела начинается с 0, а не с 1, как в Linux, поэтому вычтите 1 из номера раздела Linux. А в grub2 он начинается с 1.
Пример: hda1
= (hd0,0)
.
Наконец, grub не различает hd и sd устройства, поэтому все помечено как hd.
Таким образом, в вашем случае запись grub для /dev/sda6
должна быть (hd0,5)
.
Самый простой способ удостовериться — это использовать cli grub и автодополнение.
начните вводить… root (hd0,
затем нажмите [tab]
Автодополнение должно тогда показать доступные разделы. Выберите тот, который кажется наиболее подходящим, закройте скобки, и на следующей строке введите
kernel /
затем снова нажмите [tab]… если файлы и структура каталогов выглядят правильно, значит вы выбрали правильный… если нет… вернитесь назад и переделайте строку root.
Ответ или решение
Чтобы ответить на вопрос о том, как определить номер раздела (hd0,x) в GRUB для устройства /dev/sda7, необходимо понимать, как GRUB работает с идентификаторами устройств и номерами разделов. Эта задача может быть выполнена с помощью последовательного логического анализа структуры диска на основе доступной информации.
Теоретическая основа
В GRUB устройство обозначается как (hdN,M), где N — номер диска, который начинается с нуля, а M — номер раздела, который также начинается с нуля в GRUB Legacy и с единицы в GRUB2. Важно отметить, что GRUB не делает различий между IDE и SCSI/SATA устройствами, поэтому, независимо от их фактического типа, диски идентифицируются как hd.
Примерно, для диска /dev/sda, в GRUB он будет обозначаться как hd0. Для диска /dev/sdb — это будет hd1 и так далее. Это правило позволяет нам однозначно устанавливать, как определенный диск будет идентифицирован в контексте GRUB.
Пример
Если рассматривать ваш случай, согласно выводу команды fdisk -l
, /dev/sda7 начинается на 6373 и заканчивается на 7119. Однако физический порядок разделов на диске может не соответствовать логическому порядку, в котором они указаны. Это связано с тем, как разделы записываются в таблице разделов, и как их видит утилита, такая как GParted.
В GParted порядок вывода может отличаться, что вызывает путаницу при идентификации разделов. Это может быть объяснено тем, что первичные и логические разделы могут размещаться в таблице разделов в разном порядке.
Применение
Для определения конкретного номера раздела x для /dev/sda7 в GRUB Legacy, мы можем воспользоваться следующими шагами:
-
Определите фактический порядок разделов. Поскольку fdisk и gparted показывают разные порядки, важно сверить реальный порядок на жестком диске. Разделы в расширенном разделе (например, sda5 и дальше) используются в порядке их создания, но их физический порядок может отличаться, как видно из результатов GParted.
-
Определите систему нумерации GRUB. Если вы используете GRUB Legacy, начните с 0. Для GRUB2 начните с 1. Это различие важно для точной идентификации номера раздела.
-
Примените алгоритм табуляции в GRUB CLI:
- Загрузитесь в GRUB и активируйте командную строку GRUB (обычно доступ к ней можно получить через меню GRUB).
- Введите
root (hd0,
и нажмите [Tab], чтобы GRUB показал список доступных разделов. Это позволит вам визуально определить, какой номер раздела соответствует /dev/sda7. - После выбора соответствующего числа, вы можете проверить правильность с помощью команды
kernel /
и опять-таки нажимая [Tab], чтобы видеть доступные файлы и корректность выбранного раздела.
Заключение
Определение номера раздела в GRUB может казаться сложным из-за различий в нумерации и порядке отображения разделов в разных утилитах. Однако, используя систематический подход, он становится предсказуемым и управляемым. Следуя вышеизложенной стратегии, вы можете уверенно определить номер раздела и продолжить настройку загрузчика GRUB. Этот метод также полезен для диагностики других проблем, связанных с загрузкой и конфигурацией разделов в будущем.