boot & chroot
Гугл не помогает. RTFM весь пока не осилил...
А ситуация такая. Хочу загрузить систему, установленную не просто на каком-то разделе, а в подкаталоге. У меня есть рабочий линукс на /dev/sda1. Я собрал в каталоге /home/newroot новый линукс (используя chroot). Хочу теперь в него по-настоящему загрузится. Т.е. ядро положить, как обычно в /boot (даже использовать старое), но чтобы корень системы был в /dev/sda1/home/newroot.
Указать такое в параметрах ядра root=/dev/sda1/home/newroot нельзя, ядро ожидает нормальный раздел, а не его подкаталог. Среди остальных параметров ядра я не нашёл способа, чтобы прямо вот так взять, и указать, что рут находится в таком-то каталоге такого-то раздела.
Понятно, что я могу, в принципе, подправить скрипты в основной системе так, чтобы при загрузке с /dev/sda1 в каком-нибудь скрипте происходил chroot. Но можно ли такое сделать непосредственно на уровне ядра и загрузчика?
А в тупую - сделать раздел, переписать туда содержимое /home/newroot и загрузится с него, конечно, можно, но как-то не спортивно. Должен же быть способ.
- Для комментирования войдите или зарегистрируйтесь
нужно ковырять initrd....
нужно ковырять initrd....
да, вот минимальный инит из
да, вот минимальный инит из дефолтного (созданного мкинитрд) инитрд:
в простейшем случае нужно просто поменять switchroot /sysroot на то, что вам нужно. хотя может и не сработать. пробуйте....
рекомендую взять инитрд из лайфсиди - он намного функциональней.
Поковырял. Там команда
Поковырял. Там команда busybox switch_root. Но похоже, что эта команда предполагает, что рутом будет всё-же раздел на диске.
$BOC(\pi, e)$
Кернел, конкретней VFS,
Кернел, конкретней VFS, полагает загрузочным деваисом блочное устроиство , каталог таковым не являеться.
Можно таки сделать имидж с каталога и грузить его
P.S Это все только мое "скромное мнение"
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
На флешку записать можно ))
На флешку записать можно )) Уже не с винта, или смонтировать как блочное устройство образ каталога...
Я по-другому сделал. Создал
Я по-другому сделал. Создал маленький раздел, положил туда только самое необходимое, в fstab прописал основной раздел, а всяческие "usr", "lib" и прочее сделал ссылками. Короче говоря, я сдался. Так заработало, естественно.
Другая беда теперь - скрипты из /etc/init.d почему-то не работают. Собственно, с этого всё и началось. Я пытался пускать их из-под chroot и они не работали. Я решил, что всё из-за chroot и нужно нормально запустить систему. Но теперь я её запустил, а результат тот же. Проблема в запуске инициализационных скриптов. Пишу /etc/init.d/dbus start, а он ничего не делает - вообще ничего до нажатия Ctrl-C. При этом действия stop, status работают нормально. Из всех скриптов работает только /etc/init.d/local. Не понятно, что такое. Раньше такого не видел.
$BOC(\pi, e)$