Перейти к содержанию

Вход в оркружение chroot⚓︎

Для того чтобы изолироваться от хост-системы, необходимо войти в среду chroot.

Создайте два файла в директории /dev:

mknod -m 600 $LIN/dev/console c 5 1
mknod -m 666 $LIN/dev/null c 1 3
Обратите внимание

После перезагрузки следует выполнить заново действия, идущие далее.

Смонтируйте виртуальные файловые системы ядра:

mount -v --bind /dev $LIN/dev
mount -v --bind /dev/pts $LIN/dev/pts
mount -vt proc proc $LIN/proc
mount -vt sysfs sysfs $LIN/sys
mount -vt tmpfs tmpfs $LIN/run

В некоторых хост-системах /dev/shm - ссылка на /run/shm. Если это так в вашей системе, выполните:

if [ -h $LIN/dev/shm ]; then
  mkdir -pv $LIN/$(readlink $LIN/dev/shm)
fi

Войдите в chroot:

chroot "$LIN" /usr/bin/env -i           \
    HOME=/root TERM="$TERM"             \
    PS1='(chroot) \u:\w\$ '             \
    PATH=/bin:/sbin:/usr/bin:/usr/sbin  \
    /bin/bash --login
Обратите внимание

После входа в chroot, в приглашении bash будет написано I have no name!. Это нормально, и ничего плохого в этом нет. Дело в том, что файл /etc/passwd ещё не создан.

Чтобы выйти из chroot, выполните:

exit

Отключите виртуальные файловые системы:

umount $LIN/dev{/pts,}
umount $LIN/{sys,proc,run}
Обратите внимание

Сейчас выполнять действия по выходу из chroot не нужно, это понадобится после окончания сборки системы.

К началу