Швець Степан:

ШС> К примеру, как можно выполнить какую-либо команду внутри
ШС> подмонтированной системы, если реально работает система, запущенная
ШС> с диска и, соответственно, внешняя (подмонтированная система), по
ШС> отношению к работающей, представляет собой всего лишь совокупность
ШС> файлов и каталогов со схожей с нею структурой.

Команда chroot изменяет корневой каталог для тех программ, которые через
неё запускаются. Если Вы выполните

chroot /mnt команда

то и сама команда будет найдена внутри /mnt, и все имена файлов, которые
она будет использовать, будут отсчитываться, начиная с /mnt. Если,
например, команда попытается прочитать файл /boot/grub/device.map, то в
действительности она обратится к файлу /mnt/boot/grub/device.map.

Некоторые части ФС (например, /dev, /proc, /sys) создаются системой
динамически. В действительности они не хранятся на диске, а являются
виртуальными ФС, отражающими текущее состояние ядра. Но монтируются эти
ФС, как и все прочие, просто к каталогам. Поэтому перед выполнением
chroot стоит позаботиться о том, чтобы соответствующие каталоги внутри
/mnt (именно /mnt/dev, /mnt/proc, /mnt/sys) тоже отражали состояние
ядра, а не содержимое одноимённых каталогов на жёстком диске. Это
достигается при помощи команды

mount --bind старая-точка-монтирования новая-точка-монтирования

которая создаёт для ФС ещё одну, новую точку монтирования. После
выполнения этой команды к одному и тому же файлу можно будет обращаться
как через старую точку монтирования, так и через новую.

-- 
Дмитрий Падучих
-- 
Blinux-rus mailing list
[email protected]
http://www.a11ywiki.org/cgi-bin/mailman/listinfo/blinux-rus

Ответить