сценарии chroot, как к?

Таким образом, я смотрю на:

https://help.ubuntu.com/community/LiveCDCustomizationFromScratch

и попытка следующего в рамках сценария удара:

sudo chroot chroot

mount none -t proc /proc
mount none -t sysfs /sys
mount none -t devpts /dev/pts

Запущение скрипта спадает до оболочки в sudo chroot chroot. Когда я exit то, что я получаю ожидаемые предупреждения о корне необходимости монтирования. Существует ли способ, которым я могу сохранить все это в рамках одного сценария оболочки?

Править: Я хочу, чтобы это было повторяемым процессом, который является, почему я хочу написать сценарий всего этого, а не ввести его вовремя и время снова.

7
задан 19 November 2014 в 11:57

5 ответов

Создайте второй сценарий (например, chroot.sh) и поместите его в Ваш chroot/ папка.

Теперь редактируют команду в Вашем исходном сценарии к этому:

chroot chroot/ ./chroot.sh

Теперь сценарий chroot.sh будет выполняться в Вашем chroot.

13
ответ дан 16 November 2019 в 18:18

Привет u должен пойти с простым решением как канал:

cat << EOF | chroot chroot
rm -rf /
EOF

пз. шутя о комнате-rf ;), что-либо, что Вы выполняете в EOF - EOF, работал в Вашем chrooted каталоге, можно также использовать sudo, если Вам нравится

cat << EOF | sudo chroot chroot
ls /
EOF
11
ответ дан 16 November 2019 в 18:18

Вещь [приблизительно 112], которые с и /proc, /sys и /dev/pts - то, что эти три файловых системы обеспечиваются ядром, таким образом, они остаются тем же, монтируетесь ли Вы в chroot или извне. Действительно, Вы будете видеть, раньше в инструкциях:

sudo mount --bind /dev chroot/dev

/dev заполняется ядром, но не обеспеченная ядром файловая система, таким образом, это должно было быть, связывают - смонтированный. Поэтому на практике Вы будете видеть, что монтирование его, который связывает использование, монтируется (или иначе) прежде, чем ввести работы chroot точно также (примите sudo):

for i in dev proc sys dev/pts
do
    mount -o bind /$i chroot/$i
done
chroot chroot
for i in dev/pts proc sys dev
do
    umount -chroot/$i
done
# or
mount -o bind /dev chroot/dev
mount -t sysfs none chroot/sys
mount -t proc none chroot/proc
mount -t devpts none chroot/dev/pts
chroot chroot
for i in dev/pts proc sys dev
do
    umount -chroot/$i
done

Соответствующее чтение:

3
ответ дан 16 November 2019 в 18:18

Вы могли создать .bashrc сценарий или что-то как он, которое добавляется к/root/.bashrc chroot ENV, который делает все монтирование и т.д. Aftwerwards, Вы восстанавливаете сохраненный .bashrc в/, базируются и выходят из chroot:

Основной сценарий:

#!/usr/bin/env bash
cp bashrcscript chroot/root/
if [ -a chroot/root/.bashrc ]; then
    cp chroot/root/.bashrc chroot/root/.bashrc.bak
fi
echo "./bashrcscript" >> chroot/root/.bashrc
chroot chroot/
rm chroot/root/.bashrc
rm chroot/root/bashrcscript
if [ -a chroot/root/.bashrc.bak ]; then
    mv chroot/root/.bashrc.bak chroot/root/.bashrc
fi

bashrcscript:

mount none -t proc /proc
mount none -t sysfs /sys
mount none -t devpts /dev/pts 
# Anything else you like to do

bashrcscript будет тогда выполняться, когда корневая консоль будет запущена. Удостоверьтесь, что это - исполняемый файл.

Вы могли даже поместить resolv.conf копирование в основной сценарий и т.д.

1
ответ дан 16 November 2019 в 18:18

Я думаю, что это не говорит, что необходимо поместить те команды в сценарий, но что Вы должны вводить их ; т.е. введите mount команды в эти sudo оболочка.

-1
ответ дан 16 November 2019 в 18:18

Другие вопросы по тегам:

Похожие вопросы: