GRUB: как найти номер раздела (hd0,x)?

Вопрос или проблема

Я играюсь с 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, мы можем воспользоваться следующими шагами:

  1. Определите фактический порядок разделов. Поскольку fdisk и gparted показывают разные порядки, важно сверить реальный порядок на жестком диске. Разделы в расширенном разделе (например, sda5 и дальше) используются в порядке их создания, но их физический порядок может отличаться, как видно из результатов GParted.

  2. Определите систему нумерации GRUB. Если вы используете GRUB Legacy, начните с 0. Для GRUB2 начните с 1. Это различие важно для точной идентификации номера раздела.

  3. Примените алгоритм табуляции в GRUB CLI:

    • Загрузитесь в GRUB и активируйте командную строку GRUB (обычно доступ к ней можно получить через меню GRUB).
    • Введите root (hd0, и нажмите [Tab], чтобы GRUB показал список доступных разделов. Это позволит вам визуально определить, какой номер раздела соответствует /dev/sda7.
    • После выбора соответствующего числа, вы можете проверить правильность с помощью команды kernel / и опять-таки нажимая [Tab], чтобы видеть доступные файлы и корректность выбранного раздела.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...