Да, это возможно И это даже работает со встроенными функциями. Просто отредактируйте свой syslinux.cfg
в него следующее:
LABEL linux
LINUX /boot/vmlinuz
APPEND root=/dev/disk/by-label/data rootfstype=ntfs loop=images/linux_root.img loopfstype=ext4 rw
INITRD /boot/initrd.img
Очевидно, вам нужно скопировать образ ядра (vmlinuz
) и исходный образ RAM-диска (initrd.img
) в раздел FAT, который вы хотите загрузить с SYSLINUX. (Путь относительно корня разделов.)
Параметр root=
указывает устройство и раздел, на котором находится образ корневой файловой системы. Конечно, вы также можете использовать обозначение /dev/sda1
или версию /dev/disk/by-UUID/SOMECRYPTYCNUMBER
.
rootfstype
указывает файловую систему раздела, на котором находится образ файловой системы. NTFS и FAT поддерживаются "из коробки". Для более экзотических форматов вам нужно отредактировать initrd.img
чтобы включить и загрузить соответствующие модули ядра.
loop=
дает путь к образу корневой файловой системы относительно базы раздела, на котором она лежит. loopfstype=
указывает его внутренний тип. Очевидно, он будет установлен при загрузке /
после нее. Раздел, с которого был загружен образ, будет автоматически смонтирован в /host
если эта папка существует. (Вы не сможете смонтировать его где-либо еще, если он НЕ смонтирован там автоматически. Но вы можете переместить его в другую точку монтирования с помощью mount -m
если это так.)
Не забудьте скопировать и перезаписать ядро и initrd.img
в разделе FAT каждый раз, когда они обновляются системным обновлением, или при загрузке могут произойти странные вещи.
К сожалению, нет способа включить раздел подкачки таким же образом. Вы должны использовать для этого реальный раздел или попытаться найти способ активировать один после загрузки из работающей системы.
Ожидайте ок. 10% загрузки ЦП для записи в петлевое устройство, смонтированное через оболочку NTFS.