mplayer
может воспроизводить файлы wav
и mp3
, и вы можете интерактивно изменять скорость с помощью клавиш [
и ]
, хотя файлы wav не могут воспроизводиться медленнее, чем их исходная скорость. vlc
может делать то же самое и замедлять файлы wav
. Чем выше скорость, тем выше частота.
Когда GRUB загружается из MBR, количество шагов совместимости с устаревшим BIOS, которое необходимо выполнить в начале процесса загрузки, означает, что код, фактически находящийся в MBR, способен загрузить только один блок диска чей номер LBA вставлен в код MBR во время установки. Этот блок обычно является первым блоком основного образа GRUB . Он содержит код для загрузки большего количества блоков и список номеров блоков, который определяет, где находится остальная часть основного образа GRUB.
На диске с разделами MBR -обычно есть неиспользуемое пространство между MBR и началом первого раздела. В MS -DOS первоначальное соглашение состояло в том, чтобы начинать первый раздел в начале следующей дорожки диска, что обычно означает, что перед первым разделом будет не менее 63 дисковых блоков, включая MBR. В современных системах первый раздел MBR теперь чаще размещается так, чтобы он начинался точно с 1 МБ от начала диска, то есть с блока #2048, чтобы оптимизировать выравнивание данных для дисков, твердотельных накопителей и систем хранения SAN, которые могут внутренне использовать размер блока больше 512 байт.
Итак, на диске с разделами MBR -начало диска обычно устроено так:
Обратите внимание, что загрузка основного образа GRUB работает исключительно с предварительно -определенными номерами блоков :до тех пор, пока основной образ GRUB не будет полностью загружен и извлечен, GRUB не будет знать о таблицах разделов или файловых системах любого типа.
На диске с разделами GPT -блоки сразу после блока #0 заняты таблицей разделов GPT,поэтому образ ядра GRUB вместо этого встроен в «загрузочный раздел BIOS». Это просто означает, что номер блока, встроенного в MBR, будет не 1, а вместо этого будет смещен номер первого блока загрузочного раздела BIOS, а остальные блоки, принадлежащие основному образу, будут сдвинуты аналогичным образом. Таким образом, на диске с разделами GPT -с GRUB в стиле BIOS -физическая структура будет примерно такой, если предположить, что загрузочный раздел BIOS является первым на диске:
Тот факт, что вы все еще можете перейти в режим восстановления GRUB, указывает на то, что хотя вы сказали, что удалили загрузочный раздел BIOS, вы еще не перезаписали его блоки; хотя пространство, занимаемое загрузочным разделом BIOS, теперь может быть нераспределенным пространством между разделами или неиспользованным пространством в другом разделе с измененным размером, оно все еще имеет свое старое содержимое, и GRUB все еще может загружать эти блоки и находить его основной образ. Но теперь ничто конкретно не защищает эти блоки от перезаписи :, как только это произойдет по какой-либо причине, образ ядра GRUB будет уничтожен, и GRUB не сможет добраться даже до режима восстановления.
Основной образ GRUB содержит несколько вещей:
/boot/grub/grub.cfg
и /boot/grub/i386-pc
соответственно, когда система Linux работает нормально. memdisk
семейства загрузчиков SYSLINUX Все это сжато LZMA, чтобы минимизировать его размер, поэтому его нельзя легко прочитать или изменить вручную.
Поскольку теперь вы переходите в режим восстановления и не можете перечислить свои разделы, это указывает на то, что основной образ GRUB содержит модуль разметки для GPT (part_gpt.mod
), но не для MBR(part_msdos.mod
). Без модуля разбиения MBR он не может получить доступ к разделу, содержащему каталог /boot/grub/i386-pc
, даже если основной образ GRUB будет содержать применимый к нему модуль драйвера файловой системы... и поэтому GRUB не может загрузить normal.mod
, что позволит вам продолжить спасательный режим.
/usr/lib/grub/i386-pc
или подобном каталоге ), самый простой способ сделать это — просто взять все подходящие несжатые компоненты, собрать из них новый образ ядра. и сжать его. Распаковывать старый и модифицировать его просто не стоит :зачем писать еще один фрагмент кода, если повторное использование кода, используемого при первоначальной установке GRUB с нуля, работает отлично? grub-install
должна каким-то образом убедиться, что normal.mod
и другие модули GRUB, расположенные в /boot/grub/i386-pc
, имеют ту же версию, что и новый основной образ GRUB. Конечно, он может сравнить существующие файлы с набором файлов, которые он использовал для перестроения основного образа, но опять же... зачем писать и отлаживать код для другого особого случая, если просто перезаписать существующее содержимое /boot/grub/i386-pc
уже -] существующая процедура установки GRUB работает нормально? Общий несжатый размер всех i386-pc
компонентов GRUB определенно меньше 4 МБ. Это ничего. Попытка избежать перезаписи этого, если он уже существует, просто не стоит проблем, если только вы не работаете с чем-то особенным, например, со старыми твердотельными накопителями PATA первого поколения -с очень ограниченным количеством доступных циклов записи.
Поскольку прошивка UEFI включает в себя стандартную поддержку файловой системы FAT32, собственную версию UEFI загрузчика GRUB можно упаковать в виде одного grubx64.efi
файла, содержащего все необходимые модули, включая normal.mod
, если хотите. Он загружается как обычный файл :, не нужно возиться с номерами блоков или встроенным кодом в фиксированных местах на диске.