выход из chroot приводит к сбою getpt


1

На компьютере с Debian Jessie у меня есть образ rootfs, который я использую таким образом:

mount myimage.img /mnt/myimage
cp /usr/bin/qemu-arm-static /mnt/myimage/usr/bin/
mount --rbind /dev /mnt/myimage/dev
mount -t proc none /mnt/myimage/proc
mount -o bind /sys /myimage/sys
chroot /mnt/myimage

при выходе я делаю обратное:

rm /mnt/myimage/usr/bin/qemu-arm-static
umount /mnt/myimage/sys
umount /mnt/myimage/proc
umount /mnt/myimage/dev
umount -l /mnt/myimage

Но когда я пытаюсь открыть новый терминал на моей машине, я получаю следующую ошибку:

Не удалось выполнить дочерний процесс

Ошибка getpt: файл или каталог не существует (перевод с итальянского)

Возможно, я что-то забыл?


Я не вижу ничего явно неправильного, хотя я бы использовал полный путь к myimage.img, потому что текущий каталог может не устанавливаться при выполнении команды. Вы используете ~/.bashrcили ~/.bash_loginдля команд запуска? Я предполагаю, что команды работают, когда вы вводите их вручную.
AFH

Вы правы насчет абсолютного пути, это каталог разработки с обоими сценариями, но лучше использовать полный путь. Я использую эти команды в скрипте / bin / bash, но поведение остается тем же, даже если я набираю их вручную.
Марк

Если вы наберете их по одному, какая команда не выполнится?
AFH

Я не вижу никакой ошибки. Но после последнего запуска я не могу открыть новый терминал на моей машине Debian. Мне нужно перезагрузиться, выйти и войти снова, этого недостаточно.
Марк

Если посмотреть более подробно, mount --rbind /dev /mnt/myimage/devзаменим /devкаталог тем, что находится в /devкаталоге на вашем изображении: у вас есть все определения терминалов там?
AFH
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.