Как определить, нужен ли моей конкретной системе загрузочный раздел?

Чтобы найти определенную строку по шаблону в sedи заменить foo на bar, сделайте следующее:

sed '/pattern/s/foo/bar/'

Поскольку в вашем случае имена кажутся первым столбцом, вы даже можете добавить маркер^-для «начала строки» в шаблон.

4
08.05.2021, 03:48
2 ответа

Если система выпущена примерно в 1994 году или старше, ее BIOS может не поддерживать диски с геометрией кластеров/головок/секторов, превышающей 1024/16/63, что соответствует пределу в 504 МБ (528,4 МБ ). Причиной этого было неудобное взаимодействие двух наборов лимитов:

  • Классическая нерасширенная функция BIOS INT 13h принимала максимальную геометрию диска 1024/255/63
  • Аппаратное обеспечение IDE (PATA )допускало максимальную геометрию 65536/16/63
  • до сих пор тривиальные реализации просто выбирали наименьшее ограничение для каждого значения, что приводило к ограничению 1024/16/63.

В июле 1994 г. для обхода этого ограничения была разработана новая функция BIOS «Enhanced Disk Drive Services» (EDD для краткости ). Он сместил биты между частями Clusters и Heads геометрии между представлением BIOS и аппаратным интерфейсом IDE (, называемым «переводом геометрии» ), в качестве обходного пути для этого ограничения.

В некоторых версиях BIOS также были ошибки в геометрии диска 4096/16/16 или ее "переведенной" форме 1024/64/63.

При геометрии диска 16383/16/63 (или 1024/255/63 в транслированном виде )был достигнут максимальный предел классической адресации C/H/S диска :форматы ввода данных функциям BIOS, обрабатывающим такую ​​адресацию дисков, просто не хватает бит для работы с дисками большего размера. Этот предел был достигнут при размере диска 7,87 ГиБ (8,45 ГБ )или ровно 16 450 560 дисковых блоков.

Спецификация IDE (PATA )включала функцию, позволяющую обойти эту проблему, но изначально она была указана как необязательная функция, и не во всех BIOS она реализована. Это называлось логической блочной адресацией или сокращенно LBA. По мере роста размеров дисков большинство дисков, выпущенных после 1996 года или около того, поддерживали LBA.

Но затем была обнаружена еще одна ошибка BIOS :в некоторых BIOS была ошибочная реализация LBA, которая давала сбой, если для представления номера блока диска требовалось более 26 бит. Это коснулось некоторых версий BIOS, выпущенных в августе 1999 г. или старше, и привело к ограничению размера диска точно в 32 ГиБ (33,8 ГБ ).

Спецификация LBA, выпущенная в 1994 году, выделяла только 28 бит для номера блока диска, и это привело к еще одному ограничению размера диска, составляющему ровно 128 ГиБ. Спецификация ATA -6, выпущенная в 2003 году, определяет 48-битные -версии функций доступа к диску LBA, которые мы в настоящее время используем с современными дисками SATA. Это должно работать до тех пор, пока размеры диска не вырастут до 128 ПиБ.


Часто эти ограничения можно было обойти, преднамеренно указав неправильную геометрию диска в BIOS, сообщив ей, что размер диска меньше допустимого предела, и создав /bootраздел, полностью соответствующий поддельной геометрии.

Иногда (после введения поддержки LBA )было достаточно, чтобы раздел /bootнаходился в пределах допустимого размера.

Загрузчик будет использовать процедуры BIOS для загрузки ядра Linux (и, при необходимости, файла initrd )из этого раздела, и после запуска ядра его драйверы получат доступ к диску, полностью минуя BIOS и делая его ограничения не имеют значения, пока работает ОС. На этом этапе реальная геометрия диска обычно автоматически -определяется ядром.

Итак, что это значит?

  • Если в вашей системе установлена ​​версия BIOS 2004 года или старше, вам может потребоваться создать раздел /boot, полностью занимающий первые 128 ГБ диска, иначе BIOS может не загрузить ОС. (Обычно это проблема только при двойной -загрузке и других установках с несколькими -ОС.)
  • Если ваша система имеет дату выпуска BIOS до 2000 года, вы можете создать отдельный раздел /bootв пределах первых 32 ГБ диска, просто чтобы обезопасить себя от ошибок реализации LBA.
  • если система 1996 года или старше и нигде в настройках BIOS не упоминается «LBA», возможно, вам придется указать поддельную геометрию диска и убедиться, что ваш раздел /bootнаходится как в поддельной геометрии, так и в пределах первого 7,87 ГиБ на диске.
  • все, что старше :"Это принадлежит музею". :-)Но если необходимо, см. соответствующие ограничения выше.

Если дата выпуска BIOS системы чуть позже даты обновления конкретной спецификации, она может иметь или не иметь обновленную спецификацию :после выпуска каждого обновления спецификации, требуется некоторое время, чтобы новые реализации стали вездесущий.

6
28.07.2021, 11:34

tl;dr :Вам не нужен загрузочный раздел.

Даже на старом компьютере 1990-х годов загрузочный раздел не нужен.

... "но как это может быть", спросите вы, "учитывая то, как нам годами твердили, что он нам нужен из-за ограничений BIOS?"

Причина в том, что современный дистрибутив Linux (, такой как ваш antiX 19.3 ), установит загрузчик grub2; и установка grub2 может включать драйверы, с помощью которых загрузчик может получить доступ к вашим разделам без ограничений; ему не потребуются средства BIOS для доступа к жесткому диску.

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

... но вы должны оставить место для драйверов grub2

Во-первых, grub2 нужно место для хранения этих драйверов. К счастью, если ваш первый раздел не расположен сразу после MBR, в начале диска установка grub2 сохранит драйверы в этом пространстве раздела, отличном от -(, ему нужно лишь небольшое количество места, возможно, просто 20KiB )и все готово.

Итак, вам нужно убедиться, что вы создали свой первый раздел с выравниванием 1 МБ (и, возможно, все разделы с этим выравниванием ).

В вашем конкретном случае установщика antiX утилитаgpartedиспользуется для определения/создания разделов. gparted по умолчанию использует выравнивание 1 МБ и показывает этот выбор при создании раздела:

enter image description here

так что просто не меняйте этот параметр.

... и убедитесь, что установлены соответствующие драйверы

Установщики дистрибутивов Linux, особенно установщик antiX, по умолчанию имеют grub2, использующие средства BIOS/UEFI, а не собственный драйвер. Вы должны убедиться, что grub2 установлен с grub-install --disk-module=native.Это описано в другом вопросе:

Как убедиться, что grub2 имеет необходимые драйверы во время установки Linux?


Спасибо @cas, @isaac и @telcoM за их содержательные ответы и помощь в синтезе этого ответа.

2
28.07.2021, 11:34

Теги

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