Хотя вы не сказали, чего вы пытаетесь достичь, для cd $(ls -d */|head -n 1)
внутри рейнджера вам нужно использовать:
map g1 eval from ranger.ext.spawn import spawn; fm.cd(spawn("ls -d */|head -n 1").strip())
«Монтирование файловой системы» — это концепция Linux/Unix :, на самом деле ее нет в GRUB.
Указание $prefix
или $root
для GRUB на самом деле не похоже на монтирование файловой системы в Linux/Unix. Это буквально просто префиксы к относительным или абсолютным путям соответственно.
$prefix
используется, когда GRUB загружает какие-либо модули GRUB, а также может использоваться как удобная переменная для ссылки на любой файл в (, что в конечном итоге будет после загрузки ОС )в каталоге /boot/grub
абсолютный путь к GRUB. Когда используется команда GRUB insmod
, она принимает значение $prefix
и добавляет специфичное для архитектуры имя каталога -и имя модуля для загрузки (с добавленным суффиксом .mod
)..
GRUB имеет свои собственные (только для чтения -)драйверы файловой системы, которые принимают абсолютные пути в форме (
раздел )
/каталог... /
имя файла, где компонент раздела может быть что-то вроде hd0,gpt1
.
$root
можно назначать и повторно назначать -несколько раз в одном файле конфигурации GRUB; в современных конфигурациях для этого обычно используется команда search
, а не явное назначение, позволяющее указать файловую систему по ее UUID.
В системе Debian 9 (с использованием загрузки в стиле BIOS -)Однажды я видел конфигурацию GRUB, которая первоначально устанавливала $root
и $prefix
для загрузки некоторых модулей GRUB, а затем указывала $root
на отдельный раздел /usr
, чтобы загрузить фоновое изображение и файл шрифта из каталога темы GRUB где-то в /usr/share/...
. Для фактических параметров загрузки он затем указывал $root
обратно на файловую систему /boot
для загрузки фактического ядра или на раздел Windows для последовательной загрузки загрузочной записи раздела.
GRUB $root
не имеет ничего общего с корневой файловой системой Linux. Как только GRUB загрузит ядро Linux и файл initramfs в ОЗУ, он передаст управление ядру. В этот момент будут сохранены только три вещи из GRUB:
Все переменные GRUB, включая $root
и $prefix
, в этот момент полностью забываются и перестают иметь какое-либо значение. Когда ядро запускается, оно активирует свои собственные драйверы устройств хранения, а файловая система, которая будет смонтирована как корневая файловая система Linux, определяется:
root=
, если он указан, или /etc/fstab
, указывающую корневую файловую систему, или сценарии, определяющие файловую систему для использования другим способом ), или UEFI-версия GRUB обычно ищетgrub.cfg
в том же каталоге, где grubx64.efi
находится в . Три -строки grub.cfg´ you found in
/boot/efi/EFI/debian/grub.cfg effectively tells GRUB where the actual GRUB configuration file (and the
/boot/grub directory) is, by filesystem UUID. If you wanted, you could replace the UUID with the UUID of the
/dev/nvme0n1p5 filesystem, to make GRUB use the
/boot `этого экземпляра Debian вместо первая установка.
Если у вас установлен пакет os-prober
в Debian, он будет автоматически запускаться всякий раз, когда вы запускаете update-grub
, и будет пытаться автоматически -обнаружить другие операционные системы, включая параллельные установки Debian, и добавить их основную загрузку. опции в конфигурационный файл GRUB.
Вы также можете добавить подобный пункт меню в /etc/grub.d/40_custom
наnvme0n1p2
:
menuentry 'Switch to GRUB configuration of /dev/nvme0n1p5' {
search --no-floppy --fs-uuid --set=root UUID-OF-nvme0n1p5-FS-HERE
configfile /boot/grub/grub.cfg
}
и аналогично в /etc/grub.d/40_custom
на nvme0n1p5
, чтобы вернуться к конфигурации GRUB nvme0n1p2
. Не забудьте запустить update-grub
, чтобы изменения вступили в силу.
Затем вы можете установить строку search.fs_uuid
в /boot/efi/EFI/debian/grub.cfg
(, то есть в nvme0n1p1
), в соответствии с тем, какую конфигурацию вы хотите, чтобы GRUB использовал по умолчанию. Пока оба экземпляра Debian продолжают использовать достаточно схожую версию GRUB, чтобы принимать одни и те же файлы конфигурации, вы сможете легко переключаться между двумя экземплярами ОС, и они оба смогут поддерживать свои собственные файлы конфигурации GRUB независимо от друг друга.