Восстановление точного состояния установки Linux на другой ноутбук с дисками другого размера и другим оборудованием

У меня есть компьютер под управлением LInux, который уже использовался и установлен, с установленными пакетами, профилями браузера и т. Д., И т. Д. Диск объемом 60 ГБ, имеет раздел подкачки и корневой раздел ext4.

Мне нужно перенести этот профиль на другой компьютер с большим диском.

Как я должен идти об этом? Я бы хотел закрыть его, загрузить систему Linux, работающую в режиме реального времени, скопировать весь 60-гигабайтный диск в файл, загрузить другую систему в работающую систему, а затем скопировать файл на его больший диск.

Будет ли это работать? Я знаю, что это не будет с Windows, но я считаю, что это искусственно наложенное ограничение от Microsoft. Это правильно, или Linux так же ограничен?

Если нет, как я могу пойти по этому поводу? Будет ли Clonezilla работать, или аппаратные различия помешают ему работать?

3 ответа

Это зависит от двух таблиц разделов: они одного типа (MS-DOS/GPT) или разного типа?

Если вы довольны переносом из своей старой системы таблицы разделов MS-DOS, то с диском все в порядке; Просто убедитесь, что новая система BIOS знает, что вы используете режим совместимости для старых дисков.

То же самое, если вы переходите с GPT на GPT-систему (я сомневаюсь, что это ваш случай, но я пишу это для других возможных читателей).

Если вместо этого вы решили перейти с MS-DOS на таблицы разделов GPT, вы не сможете использовать dd диск. Причина в том, что таблица разделов GPT хранит информацию после (защитной) MBR (и в конце диска, но это представляет небольшую проблему). Таким образом, чтобы приспособиться к новой структуре GPT после защитной MBR, вам следует переместить или изменить размер первого раздела, что отнимает много времени и опасно для целостности ваших данных. В этом случае rsync'ing дисков является лучшим решением.

Что касается совместимости оборудования, проблем должно быть немного. В общем, udev заботится обо всем, кроме того, что у вас могут быть некоторые компоненты, требующие особого внимания. Например, вы можете перейти из одной системы, где драйвер Wi-Fi с открытым исходным кодом, в другую, где вместо этого требуется проприетарное программное обеспечение. Например, вам может потребоваться установить прошивку для вашего драйвера. Или вам может потребоваться установить проприетарные драйверы NVidia для вашей новой карты NVidia.

Также возможно, что вам потребуется перенастроить ваш X-сервер, чтобы адаптировать его к вашему новому оборудованию. Это, безусловно, верно, если вы ввели новую карту с ускорением 2D/3D, потому что для этого потребуется нечто иное, чем обычный драйвер vesa.

 sudo Xorg :0 -configure

позаботится об этом.

Иногда даже для подключения к сети Ethernet может потребоваться необычный драйвер. Хотя это необычно, это особенно раздражает, потому что может оставить вас без связей. Чтобы учесть это, я предлагаю вам взглянуть на то, как новый ПК будет работать под Linux с живым дистрибутивом, прежде чем переносить на него старую систему. Просто запомните, какие драйверы использует дистрибутив Live для подключений Ethernet и Wi-Fi, затем загрузите их на старую систему, и у вас все получится.

Что касается возможности перехода Windows на новую систему таким образом, я никогда не пробовал (я никогда не использую Windows). Тем не менее, Windows является проприетарным программным обеспечением, и такой шаг, который вы планируете, по существу сводится к увеличению числа систем, работающих под одной лицензией. Для FOSS это не проблема, но я уверен, что владельцы проприетарного программного обеспечения (например, Windows и Apple; но также и владельцы всех платных приложений) приняли меры для предотвращения этого. Может быть иначе, если вы намереваетесь передать свою лицензию, и в этом случае я уверен, что некоторые из этих программ предоставляют значительную свободу действий (но, опять же, я не могу говорить о Windows из собственного опыта).

Я делаю это все время, где я работаю. Обычно я просто выполняю rsync. Загрузите что-то вроде sysreq cd:

http://www.sysresccd.org/SystemRescueCd_Homepage

Или Ubuntu или любой другой живой диск. Откройте терминал и введите следующее:

mkdir /mnt/old
mkdir /mnt/new

mount /dev/sdax /mnt/old
mount /dev/sdbx /mnt/new

Вы также захотите смонтировать любые другие специальные разделы, такие как sdb2 для /home или что-то еще. А затем просто сделать нормальный rsync

 rsync -Pav  --exclude=/mnt/old/dev --exclude=/mnt/old/proc --exclude=/mnt/old/sys  /mnt/old /mnt/new/

После того, как это закончено, нам нужно выполнить chroot и сделать grub.

mount -o bind /dev /mnt/new/dev
mount -t proc none /mnt/new/proc
mount -t sysfs none /mnt/new/sys
chroot /mnt/sysimage /bin/bash
grep -v rootfs /proc/mounts > /etc/mtab
rm -f /boot/grub/device.map 
grub-install --no-floppy /dev/sda

Так что это должно работать... или это все разрушит. Наслаждайтесь!

PS Я не верю, что это будет работать с Windows

Это приведет к тому, что диск объемом 60 ГБ будет реплицирован на 320 ГБ, при этом разделы будут иметь одинаковый размер (поэтому то же самое свободное пространство). Затем вы можете добавить раздел, чтобы использовать оставшееся пространство (возможно, переместить / home в новый раздел, так как он, как правило, большой).

В качестве альтернативы, смонтируйте 320 ГБ в качестве USB-накопителя, разбейте его на разделы, как вам нужно, затем выполните rsync все с одного диска на другой.

Это то, что вы определенно не можете сделать с Windows, но вы можете сделать с Linux. Единственное, что вам нужно сделать, это переустановить grub и убедиться, что grub.cfg имеет смысл, когда вы устанавливаете его как основной диск. И убедитесь, что /etc/fstab ссылается на правильные разделы впоследствии (использует ли manjero uuids?)

Таким образом, ответ на ваш вопрос "да", вы можете просто скопировать Linux с одного диска на другой, и заставить его работать довольно легко, если вы знакомы с вышеизложенным.

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