Я собираю систему LFS (Linux From Scratch) на виртуальной машине, и до сих пор мне удалось получить работоспособную настольную систему, загружающуюся с известного устройства, в моем случае / dev / sda1.Я сейчас пытаюсь сделать живую систему, которая загружается из образа ISO.Вместо того, чтобы использовать / dev / sr0 в качестве корня, возможно, что я уже установил, возможно (и, поскольку он более вероятно будет использоваться с USB-накопителя, чем с реального CD-ROM, слишком негибким), я решилпри загрузке в корень initrd.Идея состоит в том, чтобы использовать его как системный корень вместо того, чтобы использовать его в качестве временного корня для загрузки «реального» корня, и, поскольку он уже находится в памяти, это избавляет меня от необходимости устанавливать корень tmpfs, скопировать все файлы,и переключитесь на него.
Ранее я экспериментировал с изображением squashfs, так как видел, что Ubuntu, похоже, использует это и имеет то, что мне нужно: корень небольшого размера, быстрее загружаемый, использующий меньше памятии работает быстро (xz - SSLLOOWW для извлечения, а gzip - медленная загрузка).Сначала у меня были проблемы с загрузкой, поэтому я переключился на initrd на базе cpio.После некоторых начальных проблем из-за отсутствия файлов в архиве мне удалось его загрузить.
Я оставил это на время (около месяца назад) для выполнения других задач в системе.Я потерял исходные настройки GRUB2 и конфигурацию ядра, поэтому продолжил делать это снова, но я столкнулся с кирпичной стеной.Я надеюсь, что кто-то здесь может знать, что мне не хватает.
Когда я загружаюсь, я никогда не вижу сообщения о загрузке файла initrd, он идет прямо к загрузке, распаковке и загрузкеядро.И это приводит к панике ядра с сообщением
VFS: cannot open root device "(null)" or unknown-block (1,0): error -6
Please append the correct "root=" boot option; here are the available partitions:
Не отображаются разделы, и после этого следует сообщение «Паника ядра», просто повторяющееся в первой строке.Если я использую «rootfstype = ramfs», я получаю:
VFS: mounted root (ramfs filesystem) readonly on device 0:15.
devtmpfs: error mounting -2
По сути, он монтирует файловую систему EMPTY ramfs от имени пользователя root, поэтому монтировать devtmpfs не удается, так как запись / dev не существует.Но наверняка я использовал эту опцию загрузки раньше.
Вот мой конфиг GRUB 2:
menuentry = "LFS (inird test)" {
linux /boot/kernel/initrd/linux ro rdinit=/etc/init
initrd /boot/kernel/initrd/root.cpio.gz
}
Да, запись / boot / kernel / initrd / directory существует, linux - это ядро (bzimageфайл, созданный путем компиляции ядра), а root.cpio.gz - мой сжатый корневой архив cpio для initrd.
Вот файл .config моего ядра (извините, я не могу вставить его здесь).
Если вам нужна дополнительная информация, не стесняйтесь спрашивать.Это ты.