Контур

Контур

Я знаю, что в некоторых обстоятельствах может быть сложно перенести установку Windows с одного компьютера на другой (физически переместить жесткий диск), но как это работает в Linux? Разве большинство модулей драйверов не загружаются при загрузке? Так что теоретически это будет такой уж проблемой?

Очевидно, что конфигурации xorg изменятся, а фирменные драйверы ATI и т. п. придется перекомпилировать (возможно?). Есть ли в этом что-то большее, чем я думаю?

Предположим, что оба компьютера относятся к одной эпохе, например, оба с процессорами i7, но немного различаются по аппаратному обеспечению.

Обновление:
Спасибо за ответы. Это в основном для моего собственного любопытства. У меня на работе установлена ​​и работает система Linux, но со временем я хотел бы перейти на компьютер, в который можно поставить две видеокарты, чтобы я мог использовать больше двух мониторов. Но не в ближайшее время.

решение1

Перенос или клонирование установки Linux довольно прост, если исходный и целевой процессоры имеют одинаковую архитектуру (например, оба x86, оба x64, оба arm…).

Движущийся

При перемещении вам придется позаботиться о зависимостях оборудования. Однако большинство пользователей не столкнутся ни с какими трудностями, кроме xorg.conf(и даже в этом случае современные дистрибутивы, как правило, не нуждаются в этом) и, возможно, загрузчика.

  • Если конфигурация диска отличается, вам может потребоваться перенастроитьзагрузчикитаблицы файловой системы( /etc/fstab, /etc/crypttabесли вы используете криптографию, /etc/mdadm.confесли вы используете md RAID). Для загрузчика самый простой способ — вставить диск в новую машину, загрузить ваш дистрибутив с live CD/USB и использовать его инструмент восстановления загрузчика.

    Обратите внимание, что если вы копируете данные, а не физически перемещаете диск (например, если одна или обе системы имеют двойную загрузку с Windows), быстрее и проще копировать целые разделы (с помощью (G)Parted или dd).

  • Если у вас естьxorg.confфайл для объявления параметров, связанных с дисплеем (например, в отношении фирменного драйвера), его необходимо будет изменить, если целевая система имеет другую графическую карту или другую настройку монитора. Вам также следует установитьфирменный драйвердля видеокарты целевой системы перед перемещением, если применимо.

  • Если вы заявилипараметры модуляили черные списки в /etc/modprobe.d, возможно, их необходимо скорректировать для целевой системы.

Клонирование

Клонирование установки подразумевает те же проблемы с оборудованием, что и перенос, но есть еще несколько вещей, о которых следует позаботиться, чтобы придать новой машине новую идентификацию.

  • Отредактируйте , чтобы дать новой машине новое имя. Найдите другие вхождения имени хоста в . Обычные местоположения: (псевдоним для 127.0.0.1) и /или другая конфигурация почтовой системы./etc/hostname
    /etc/etc/hosts/etc/mailname

  • Регенерироватьключ хоста ssh.

  • Внесите необходимые изменения вконфигурация сети(например, статический IP-адрес).

  • Измените UUID томов RAID (не обязательно, но рекомендуется во избежание путаницы), например, mdadm -U uuid.

Смотрите такжепошаговое руководство по клонированию, ориентированное на Ubuntu.

Моя текущая установка на настольном компьютере была клонирована с предыдущей путем отключения одного из двух зеркальных дисков RAID-1, перемещения его в новый компьютер, создания тома RAID-1 на уже имеющемся диске, повторной синхронизации зеркала и внесения описанных выше изменений, где это применимо.

решение2

Я не уверен, что это ответ на ваш вопрос, но обычно вы делаете ровно наоборот — перемещаете папку пользователя и переустанавливаете все. Теоретически все ваши настройки и индивидуальные файлы конфигурации должны находиться в папке пользователя, так что это единственное, что вам действительно нужно перенести.

Некоторые менеджеры пакетов позволяют вывести список всех установленных пакетов (Debian/Ubuntu — dpkg --list, Gentoo — /etc/world, и т. д.), поэтому вы можете просто:

  1. Установите базовый дистрибутив на новую систему
  2. Скажите ему: «Установи все пакеты, которые были на другом компьютере».
  3. Скопируйте вашу пользовательскую папку

И в итоге вы получите функционально идентичную систему.

решение3

Действительно, в то время как в Windows практически невозможно перенести установку на новый ПК, просто скопировав содержимое жесткого диска или переключив жесткий диск между ПК, в Linux это работает на удивление хорошо. Я перешел с Thinkpad R52 на Thinkpad T400, просто скопировав содержимое моего старого жесткого диска на новый (поместив старый во внешний корпус, подключенный через USB, и скопировав все с Gparted-Live-CD). Все, что мне оставалось сделать после этого, это вручную поместить Grub в MBR и загрузиться. У меня все по-прежнему работало.

Как сказал Майкл, обычно новый ПК — это хорошая возможность избавиться от хлама, накопившегося со временем, однако иногда вам просто нужно быстро снова приступить к работе, и тогда простое копирование содержимого жесткого диска отлично работает с Linux, поскольку все драйверы, включенные в ядро, доступны ядру без установки. В настоящее время драйверы загружаются автоматически, а не вручную указываются в modprobe.conf, и даже xorg автоматически настраивается для меня.

Проблемы могли возникнуть только в том случае, если вам пришлось вручную настраивать драйверы на старом ПК (например, системы RAID, фирменные графические драйверы и т. д.).

решение4

Контур

Недавно я перенес установку Arch Linux на другой диск, который былменьшечем оригинальный диск.

Оригинальный диск использовал только один раздел, что упрощало вещи. Если у вас есть загрузочный раздел, отдельный от корневого раздела,вот ответэто может вам помочь.

Шаги были следующими:

  1. Сделайте резервную копию данных.
  2. Создайте на целевом диске раздел, содержащий файловую систему ext4.
  3. Скопируйте все данные из исходного раздела в целевой раздел.
  4. УстановитьGRUBв качестве загрузчика на целевом диске.

Подсказки

Подсказка, прежде чем мы начнем: чтобы определить пути моих подключенных устройств (например, /dev/sdb) и вообще следить за состоянием устройств, а также разделов, я используюwatchв сочетании сlsblk:

watch lsblk -o tran,name,model,fstype,label,mountpoints,fssize,fsavail,fsused,fsuse%

Он обновляется каждые две секунды и выдает следующий вывод:

TRAN   NAME   MODEL                   FSTYPE LABEL        MOUNTPOINTS                FSSIZE FSAVAIL FSUSED FSUSE%
sata   sda    SanDisk SSD PLUS 1000GB
        ├─sda1                         ext4   VM partition /sda1                        108G     50G  53.4G    49%
        └─sda3                         ext4                /                            808G  561.3G 205.7G    25%
usb    sdb    SABRENT
        └─sdb1                         ext4   new_daedalus /run/media/me/new_daedalus  29.2G   25.3G   2.4G     8%
sata   sr0    MATSHITADVD-RAM UJ8A2

Поскольку мы собираемся копировать содержимое одного раздела на другой, будет хорошей идеей избавиться от хлама, который занимает много места: проверьте исходный раздел с помощьюncduдля каталогов, содержащих наибольшее количество данных, и удалите или переместите их, если это возможно.

Еще один момент: я использую адаптеры SATA-USB, такие какэтидля подключения исходного и целевого дисков к моему компьютеру.

Подробности

Предположим, что вы создали резервную копию своих данных и ваш целевой диск находится по адресу /dev/sdb, давайте рассмотрим подробнее:

  1. Создайте на целевом диске раздел, содержащий файловую систему ext4:

    • Создайте раздел Linux (тип 0x83вМБР):
      sudo sfdisk /dev/sdb <<< "type=83"
      
    • Создайте файловую систему на новом разделе:
      sudo mkfs.ext4 -L new_partition /dev/sdb1
      
  2. Скопируйте все данные из исходного раздела в целевой раздел:

    • Далее предполагается, что и старый, и новый разделы смонтированы:
      sudo rsync -a --hard-links --delete --progress --human-readable --stats /run/media/me/old_partition/ /run/media/me/new_partition/
      
    • я использовалrsyncздесь. Вы также можете использовать good old, cpчтобы добиться того же самого:
      sudo cp --recursive -a /run/media/me/old_partition/* /run/media/me/new_partition/
      
  3. УстановитьGRUBв качестве загрузчика на целевом диске:

    • Добавьте в новый раздел виртуальные файловые системы, необходимые для работы grub-install:
      sudo mount --bind /dev /run/media/me/new_partition/dev; sudo mount --bind /proc /run/media/me/new_partition/proc
      
    • Сделайте корень нового раздела текущим корнем:
      sudo chroot /run/media/me/new_partition/
      
    • Установите GRUB на целевой диск (см.этотдля получения более подробной информации о том, что здесь происходит):
      grub-install /dev/sdb; grub-mkconfig -o /boot/grub/grub.cfg
      
    • Выход chrootс помощью Ctrl+ dилиexit
    • Размонтируйте виртуальные файловые системы и сам раздел:
      sudo umount --recursive /run/media/me/new_partition
      

Вот и все, теперь вы можете использовать установленную new_partitionна диске систему Linux /dev/sdb.

Связанный контент