GRUB Загрузочный ISO-образ / образ диска из раздела NTFS

См. http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html или man zshmisc

%d
%/
Current working directory. If an integer follows the ‘%’, it specifies a number of trailing components of the current working directory to show

%~
As %d and %/, but if the current working directory starts with $HOME, that part is replaced by a ‘~’.

Чтобы получить что-то похожее на PROMPT_DIRTRIM = 3 , вы можете использовать % 3d или % 3 ~ , например

% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d% 

1
29.03.2019, 13:32
1 ответ

Итак, как решение;

Предыстория :Я использую Arch Linux. Он использует mkinitcpio для генерации своих initramfs (и раннего пользовательского пространства (! )). Поскольку мы загружаем образ файловой системы из NTFS, нам нужно настроить initramfs. Мы можем использовать GRUB и его модуль ntfs для чтения (NTFS-модуль GRUB является ro afaik. )ядро ​​и initramfs из раздела NTFS. После этого нам все еще нужно смонтировать раздел NTFS из initramfs для полного доступа для чтения/записи.

Теория работы решения :Я добавил пакеты ntfs -3g и fusefs в initramfs, чтобы можно было смонтировать раздел NTFS. Я также создал новый хук mkinitcpio , который нужно загрузить перед фактическим монтажным хуком. Хук представляет собой простой сценарий оболочки, который получает параметры (, которые задаются как аргументы ядра из GRUB ), например

.
menuentry "Boot LINUX FROM ISO FILE" {
  insmod ntfs
  set root='(hdX,Y)'
  linux /in_ntfs/vmlinuz-linux root=UUID=*GPT_UUID_OF_ROOTFS_ON_DISK_IMAGE* image_path=*path_to_disk_image_on_NTFS* image_hd=*GPT_UUID_OF_NTFS_DISK*
  initrd /in_ntfs/initrd.img
}
  1. Местоположение образа диска внутри раздела NTFS (образ _путь)
  2. Раздел NTFS GPT GUID (образ _hd)
  3. Если образ диска содержит несколько разделов, UUID rootfs (root)

Процедура загрузки при монтировании дисков:

  1. Перехватчик initcpio монтирует раздел NTFS
  2. Перехватчик initcpio монтирует образ диска из раздела NTFS как петлевое устройство
  3. Теперь запускается обычный хук монтирования, ему дается ext4 или любой другой раздел, содержащий linux rootfs внутри этого образа диска, смонтированного на шаге 2
  4. Система выходит из раннего пользовательского пространства; newroot устанавливается на NTFS -loop -смонтированный раздел rootfs файла образа.
  5. Та -да, мы получили работающую систему Linux с разрешениями на чтение и запись, работающую с образа диска/iso-образа внутри раздела NTFS.
4
27.01.2020, 23:22

Теги

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