Где найти VBR на/dev/sda1 разделе?

Вы могли использовать что-то как zenity или xmessage. Например:

wgetmsg() {
    wget "$@" && zenity --info --text='Wget returned success.' || zenity --error --text='Wget returned failure.'
}

wgetmsg -O filename http://www.example.com
3
26.03.2013, 00:37
2 ответа

Это обычно не устанавливается там. Большую часть времени GRUB (этап 1) установлен в MBR только на Linux.

Хотя версия 1 GRUB будет всегда переполняться немного в 30 КБ после MBR (этап 1.5, т.е. драйверы файловой системы), с версией 2 GRUB, код, установленный в MBR, может загрузить некоторый другой и больший код (этап 1.5) сырыми данными, читая любые секторы из диска (но будет обычно придерживаться поведения GRUB 1 - то есть, загружая код из 30 КБ после MBR).

Те 30 КБ являются обычно доступным non-partitionned "бесплатным" дисковым пространством, потому что по историческим причинам довольно редко для первого раздела диска запуститься перед сектором 63, который оставляет по крайней мере 512*62 = 31 кибибит после MBR.

Затем это загружает некоторые файлы, обычно от /boot, как меню (menu.lst или grub.cfg), больше драйверов файловой системы, и т.д. Это - этап 2.

После этого, имеет достаточно для запуска ОС.

Что касается VBR теперь, это не является наиболее часто используемым на разделах Linux, потому что это не достаточно надежная, но MS Windows, обычно устанавливает один в начале системы (C:\) разделы. GRUB просто выполнит его, если Вы захотите запустить Windows. Этот процесс называют chainloading: загрузчик, который запускает другой. Это также означает, что файловая система, используемая там, должна оставить нетронутым начало ее раздела, потому что она могла перезаписать VBR иначе! Сумма "нетронутого" доступного пространства зависит от файловой системы, таким образом, нет никакой хорошей гарантии: это могло быть очень маленьким...

О загружающемся этапе 1.5 от "необычного" места, поскольку я сказал, GRUB 2 может загрузить свой этап 1.5 из любого сектора на диске. Это может быть из файла, но это может быть опасно, потому что файловая система может решить переместить тот файл в другие секторы на диске в любое время (или еще хуже, для фрагментации его!), и GRUB должен был бы обновить новый номер сектора в MBR каждый раз...

Интересный случай является Таблицами разделов GUID (GPT). Они являются слишком большими, чтобы гарантировать, что достаточно места (30 КБ) всегда будет свободным для этапа 1.5. Рекомендуемое решение в этом случае состоит в том, чтобы использовать специализированный "раздел загрузчика" (не проблема, так как GPT может поддерживать 128 разделов), который не разместит файловую систему, но данные этапа 1.5 GRUB. Таким образом, это не должно перемещать anywere, и можно дать ему много пространства.

Необходимо действительно прочитать статью GRUB Википедии, где я получил большую часть этой информации.

6
27.01.2020, 21:09
  • 1
    я просто узнал что, по-видимому, на секторе 1 /dev/sda - непосредственно после MBR - существует копия /boot/grub/core.img или /boot/grub/diskboot.img. –  JohnnyFromBF 22.03.2013, 15:47
  • 2
    Но как GRUB имеет доступ к файловой системе на этом этапе? –  JohnnyFromBF 22.03.2013, 16:11
  • 3
    @Ian я думаю, что Вы ответили на свой собственный вопрос. –  a CVn 22.03.2013, 16:14
  • 4
    @Ian код GRUB в MBR (этап 1) является очень маленьким (ограниченный размером MBR), но достаточно большим для загрузки некоторого другого кода из диска (этап 1.5 и/или 2), который может затем загрузить модули и ОС. Это объяснено в Википедии. –  Totor 22.03.2013, 18:15
  • 5
    @Ian обновил ответ. –  Totor 26.03.2013, 00:02

На самом деле GRUB2 обычно не устанавливается на VBR. Это рекомендует против этой практики.

Это - что-то как там то, чтобы не быть достаточным количеством пространства там для связывания модуля файловой системы для начальной загрузки/. Исторически, диски MBR дают Вам 62 "зарезервированных" сектора для такого загрузочного кода. (Поскольку первый раздел запускается на цилиндрической границе. В наше время мы игнорируем цилиндры, но это выровненное к целому мегабайту вместо этого, для поддержки 4K дисков сектора, справки с SSD / RAID, и т.д.). Вы не получаете такие хорошие гарантии от VBR.

Сообщение GRUB2 дает Вам, объясняет, что VBR (раздел) установки должен полагаться на сохранение номеров блока модулей, таких как драйвер файловой системы. Это менее надежно; это означает, что личинка должна быть переустановлена, когда те файлы модуля обновляются.

6
27.01.2020, 21:09
  • 1
    Вы "не получаете целый мегабайт", потому что первый раздел запускается на цилиндрической границе, но потому что стартовые разделы на секторе 2048 (1 МБ), или несколько из 2048, разрешают избегать всего вида проблем выравнивания раздела/файловой системы/набега, таким образом, это стало лучшей практикой. Большую часть времени цилиндр считается приблизительно 8 МБ (но цилиндр действительно не означает что-то больше в наше время, потому что мы используем LBA, не CHS). –  Totor 23.03.2013, 02:15
  • 2
    Кроме того, нет такой вещи как "стандартный диск MBR". Это - фактическая вещь, потому что старый MS-DOS раньше требовал, чтобы разделы запустились на "цилиндрических" границах. Linux не заботится, и можно создать раздел везде, где Вы хотите (даже перед сектором 62). Однако эта фактическая практика стала настройкой по умолчанию в Linux fdisk некоторое время, для обеспечения старой совместимости DOS. –  Totor 23.03.2013, 14:53

Теги

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