Вам, наверное, будет необходимо перейти в однопользовательский режим перед началом копирования диска - это необходимо для отключения системных демонов, остановки журналов и прекращения входа других пользователей в систему:
/sbin/telinit 1 |
При копировании жесткого диска вам надо скопировать все каталоги и файлы, включая ссылки.
Однако, вам не нужно копировать каталог /new-disk, потому что это и есть новый диск!
Более того, вам надо создать на новом диске каталог /proc, но содержимое этого каталога копировать не нужно: /proc - это виртуальная файловая система, и в ней нет настоящих файлов, а есть лишь информация о системе и процессах, в ней работающих.
Существуют 3 разных способа копирования старого диска на новый. Это может занять значительное время, особенно если у вас большой диск или мало оперативной памяти. Минимум скорости копирования - примерно 10 Мб в минуту, а, скорее всего, это будет происходить значительно быстрее.
Вы можете следить за копированием командой "df", запущенной с другого терминала. Используйте "watch df" или "watch ls -l /new-disk", чтобы видеть отчет, обновляемый раз в две секунды; нажмите клавиши Ctrl-C для прекращения просмотра. Помните, однако, что сам запуск команды "watch" может замедлить процесс копирования.
Это наиболее простой способ, но он подходит, только если ваша исходная система находилась на одном разделе.
Опция -a сохраняет исходную файловую систему настолько, насколько возможно. Опция -x ограничивает работу команды cp одной файловой системой - поэтому не нужно беспокоиться о каталогах /new-disk и /proc.
Для пользователей SuSE: . Используя этот метод, вы должны также создать каталог /dev/pts на новом диске. Используйте команду "mkdir /new-disk/dev/pts".
Замечание: (Замечание: Новые версии cp, при использовании опции -x, создадут пустые каталоги /new-disk/new-disk и /new-disk/proc. В этом случае необходимо удалить каталог /new-disk/new-disk, и оставить /new-disk/proc..)
(напишите все это в одной строке)
Эта команда перейдет в корневой каталог и затем скопирует все файлы и каталоги, кроме /new-disk и /proc в /new-disk. Заметьте, что первый символ после ls - это цифра 1, а не буква L!
Эта команда должна работать в любом случае.
(напишите все это в одной строке)
Последний каталог - /new-disk - это назначение команды cp. Все остальные каталоги - источники. Таким образом, мы копируем все каталоги из списка в /new-disk.
При применении этого метода вы просто перечисляете каталоги, которые хотите скопировать. Здесь мы указали все каталоги, кроме /new-disk и /proc. Если вы не можете использовать первые два метода по каким-либо причинам, то всегда можете вручную указать каталоги, которые необходимо скопировать.
Также надо учесть, что если в корневом каталоге есть файлы, то их тоже надо скопировать отдельной командой. В частности, это касается Debian и Slackware, так как эти дистрибутивы помещают файлы в корневой каталог:
cp -dp /* /.* /new-disk |
В предыдущих версиях этого Мини-HOWTO упоминалось, что вы можете использовать "tar" для копирования диска, но в этом методе была обнаружена ошибка. Конечно, существуют и другие методы скопировать диск, но эти три являются наиболее простыми, быстрыми и надежными.
После использования любого из этих методов вам также надо создать каталог /proc на новом диске, если его еще нет:
mkdir /new-disk/proc |
Затем вы можете проверить файловую систему нового диска, если хотите:
umount /new-disk fsck.ext2 -f /dev/hdb1 mount -t ext2 /dev/hdb1 /new-disk |
Если на новом диске существует больше одного раздела, то вам придется отключить их все "снизу вверх" до запуска fsck.ext2: в соответствии с примером, приведенном выше, вам надо сначала отключить разделы 3-го уровня, затем 2-го и, только в конце, первого.
Можно сравнить два диска, чтобы убедиться, что все скопировано верно:
find / -path /proc -prune -o -path /new-disk -prune -o -xtype f -exec cmp {} /new-disk{} \; |
(напишите все это в одной строке)
Для пользователей Slackware: стандартная "базовая" установка Slackware (только файлы серии "A") не включает команду "cmp", поэтому это сравнение не запустится, если у вас установлены только базовые файлы. Команда "cmp" находится в файлах серии "AP1".
Здесь мы сравниваем только обычные файлы, символьные же и блочные устройства (из каталога /dev), гнезда (sockets), и т.п. здесь не учитываются, так как команда "cmp" работает с ними не совсем корректно. Мы будем не против, если кто-нибудь подскажет нам, как сравнить эти "специальные" файлы.