Задача - перенести системный раздел (тот который монтируется как «/») на другой жёсткий диск (или другой раздел жёсткого диска). В принципе я это уже делал и успешно: грузишься с LiveCD, старый хард монтируешь как /mnt/oldlinux, новый как /mnt/newlinux и в него переходишь, копируешь:
mkdir proc
mkdir sys
cp -ax /mnt/oldlinux/bin .
cp -ax /mnt/oldlinux/boot .
cp -ax /mnt/oldlinux/dev .
cp -ax /mnt/oldlinux/etc .
...
Вопрос1: Можно ли это делать без LiveCD? То есть копировать с активно используемой файловой системы. На ней же открытые файлы всё-таки есть. Или такая проблема только в маздае существует, а линукс без проблемы позволит скопировать открытый для записи файл? А как же то, что там есть: примонтированные другие файловые системы, символьные ссылки, жёсткие ссылки, информация о принадлежности файлов и каталогов и правах доступа. Какие опции должны быть в cp, чтобы вся эта структура осталась неизменной?
Вопрос2: Можно ли вместо cp использовать tar? Это для случая, когда переносишь не на другой диск/раздел, а в тот же самый раздел когда хочешь сменить скажем ext2 на reiserfs. То есть таришь содержимое, форматируешь раздел в reiserfs и восстанавливаешь. Тут уж конечно да, без LiveCD не обойтись. Опять же вопрос какие опции должны быть в tar, чтобы вся эта структура осталась неизменной?
Вопрос3: Вытекает из второго. Как не перезагружая систему создать бэкап системного раздела?