Загрузка Linux с файловой системой USB

Я пытаюсь загрузить систему Linux, хранящуюся на USB-накопителе, который я получил, следуя руководству Linux из Scratch .

Я закончил все, кроме загружаемой части, проблема в том, что когда ядро ​​пытается подключить файловую систему, USB-накопитель не является частью опций, а только на жестком диске. Я полагаю, что USB и другие системы хранения перечислены в /dev только после установки файловой системы.

Есть ли обходной путь, поэтому я могу подключить файловую систему с USB-накопителя? Даже если необходимо исправить исходный код ядра.

EDIT: Извините за недостаток информации.

Я использую Grub2 в качестве загрузчика

Я использую sysvinit (Kernel никогда не запускает его)

Это раздел MBR, я использую PARTUUID = 000337f3-01 в качестве пользователя root. Он работает на машине QEMU

Для установки ramdisk я просто делаю initrd / bzImage Да, я создал udev

То, как я решил эту проблему, – это то, что называется «initrd». Я не знаю, насколько вы знакомы с initrd при работе с Linux с нуля, но здесь есть страница об initrd:

http://www.linuxfromscratch.org/blfs/view/svn/postlfs/initramfs.html

То, что делает initrd, действует как небольшая корневая файловая система, в которую загружается ядро ​​после загрузки ядра. Эта простая файловая система имеет все файлы, в которых ядро ​​необходимо смонтировать корневую файловую систему и загружать другие драйверы, которые система должна загружать. После того, как реальная загрузочная файловая система смонтирована в initrd, initrd делает эту файловую систему корневой файловой системой, завершает работу, и ядро ​​запускает процесс init в реальной корневой файловой системе.

Фактически, можно создать систему micro-Linux, которая никогда не покидает initrd; Я сделал это несколько лет назад, когда делал однопотоковый дистрибутив Linux с нуля.