Я пытаюсь установить Linux из источников в моем домашнем каталоге (в отличие от создания выделенного раздела). Базовая система (glibc, ядро и init) устанавливается в $ HOME / lfs / root. Я загружаю эту систему, используя grub, установленный на моем USB-накопителе, вот соответствующая часть в grub.cfg (мне нужно изменить root на hd1, поскольку hd0 - это мой USB-накопитель):
menuentry "Custom linux HD" {set root = '(hd1,1)' linux / home / thiago / lfs / root / boot / bzImage root = / dev / sda1 / home / thiago / lfs / root ro}
Кажется, только устройства являются допустимыми параметрами для 'root ='. Есть ли способ обойти это? Я не хочу возиться с моими текущими разделами.
Я не тестировал его, но теоретически (с недавним дистрибутивом и ядром) вы можете выбрать использование initramfs или initrd. Ядро сначала запустится с initramfs как root и запустит свой загрузочный скрипт. Последнее, что делает сценарий загрузки, - это вызывать pivot_root
на смонтированном "реальном" корне, а затем запустите настоящий /sbin/init
.
Если вы можете заставить работать initramfs или initrd, возможно, вы можете настроить сценарий загрузки, чтобы pivot_root в нужном подкаталоге?
Я не думаю, что ты сможешь это сделать. А может пора увидеть виртуализацию? У вас будет файл для вашего диска и запустить виртуальную машину на этом диске.