Перенос всей установки Linux на другой диск


56

У меня есть Ubuntu 14.04 с множеством пакетов и всего, что связано с работой, и я очень ей доволен. Он установлен на моем основном SSD-накопителе емкостью 120 ГБ (я выбрал «/», когда установил Ubuntu, поэтому я считаю, что все должно быть на этом диске). Он отображается как / dev / sda

Теперь я добавил еще один SSD на мой компьютер, который является 240Gb. В данный момент у меня нет под рукой других носителей информации (например, внешний жесткий диск).

Поскольку новый накопитель на 240 ГБ, очевидно, имеет большую емкость и работает быстрее (более новое поколение, чем мой на 120 ГБ), я хочу перенести свой Linux на этот новый накопитель. Этот новый диск отображается как / dev / sdb, и на данный момент он не отформатирован или что-то еще (я буквально распаковал и вставил в мой компьютер прямо сейчас: P)

Как я могу безопасно переместить мою установку Linux на новый диск?

Я могу изменить кабель SATA, чтобы новый диск отображался как / dev / sda, если это необходимо.

Это вывод "fdisk -l", если это помогает:

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00076d7a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   226064383   113031168   83  Linux
/dev/sda2       226066430   234440703     4187137    5  Extended
Partition 2 does not start on physical sector boundary.
/dev/sda5       226066432   234440703     4187136   82  Linux swap / Solaris

Disk /dev/sdb: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

4
Похоже, вы планируете использовать оба из них сейчас. Если это так, вы должны рассмотреть возможность использования более нового, более крупного, а /homeне всей системы. Это должно быть более легкое изменение (просто переместите все и добавьте одну строку в / etcs / fstab), и большинство больших файлов, скорее всего, попадут в ваш домашний каталог (и, следовательно, на большой диск).
Кевин

Ответы:


36

Вы можете использовать CLONEZILLA для этой цели.

Clonezilla - это бесплатный инструмент для создания образа и клонирования разделов и дисков, который можно использовать для резервного копирования всех ваших данных (целых дисков или разделов) с высокой степенью сжатия, а затем клонировать их обратно на жесткий диск, чтобы привести их в точно такое же состояние. Это быстрее, чем устанавливать ОС в большинстве случаев.

  • Загрузить Clonezilla стабильный ISO или прямой Загрузить clonezilla-live-2.4.6-25-amd64.iso

  • Создайте загрузочный (Live) USB с помощью Tuxboot 7.0 .

  • Загрузиться с созданного Clonezilla носителя.

  • Теперь у вас есть много вариантов:

    1. Создайте образ только '/' (saveparts) и клонируйте его в любой раздел вашего другого SDD.
    2. Создайте образ полного диска (saveisk) и клонируйте его на свой новый SSD.

введите описание изображения здесь

В вашем случае вы также можете использовать опцию «устройство-устройство», но я не знаком с ней.

Вы можете найти подробное руководство по Clonezilla здесь: http://clonezilla.org


1
Я предлагаю вам посмотреть эти два обучающих видео раньше: youtube.com/watch?v=41tTudaQb0I и youtube.com/watch?v=LS6VhLDw-io
Северус Тукс,

1
Это тоже хороший вариант. Но мне лень создавать клонезилловую палку ;-)
Pilot6

Я обнаружил, что clonezilla не копирует mbr, поэтому весь образ диска и немного работы с gparted должны
сработать

1
Вау! рад слышать это ;-), Время загрузки, Это из-за измененных UUID, т. е. новые UUID и старые из ваших важных разделов (home, Swap) изменились. Чтобы исправить это, пожалуйста, следуйте инструкциям, приведенным здесь с соответствующими изменениями : askubuntu.com/a/737340/497359 Если вы обнаружите какие-либо проблемы, пожалуйста, прокомментируйте их.
Северус Тукс,

1
@adampski: похоже, это ошибка в Clonezilla 2.4.5. В качестве обходного пути вы можете использовать Clonezilla 2.4.2 или Clonezilla 2.4.2 Server Edition (DRBL), пока он не будет исправлен. :)
cl-netbox

42

Это можно сделать несколькими способами. Но самый простой - просто скопировать все файлы со старого диска на новый.

  1. Создайте раздел ext4 и раздел подкачки на новом диске.

  2. Загрузиться с LiveUSB.

  3. Смонтируйте старый раздел Ubuntu в некоторый каталог, смонтируйте новый в другой каталог.

  4. Скопируйте все файлы из старого в новый, используя cp -aкоманду.

  5. Установите grub на новый диск .

  6. Обновление /etc/fstabс новыми UUID.

Если что-то не понятно, могу добавить некоторые пояснения.


1
+1 - также возможно избежать загрузки с LiveUSB и делать все, пока загружается с оригинального диска, делать все изменения, перезагрузка, вуаля.
Сергей

1
@ Этьен: не копируйте эти каталоги (также /dev), просто создайте пустые каталоги на целевом диске и установите для них того же владельца / прав, что и на исходном диске.
Сергей,

10
Я закончил тем, что использовал: sudo rsync -a / /mnt/linux/ --exclude sys --exclude proc --exclude dev --exclude tmp --exclude media --exclude mnt --exclude run тогда sudo mkdir sys proc dev tmp media mnt run
Этьен

1
@ Этьен, не могли бы вы отредактировать --exclude-comment? Если вы делаете это так, как написали, / var / tmp также исключается (мне кажется), после того, как клон пропустил systemd-resolved.service, в результате чего разрешение имен не работает ... Я думаю, что это должно быть --exclude / tmp --exclude / proc и т. д. Спасибо
Swe

1
@ Мы не должны оставлять комментарии, пожалуйста, предложите изменить исходный ответ.
Этьен

22

Если у вас есть время и вы хотите поехать:

$ dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync

Объяснение команды:

  • ifэто вход, ofпункт назначения
  • bsустанавливает размер блока. Это размер блоков, которые dd будет читать и записывать. Более высокие размеры блоков обычно означают более высокую производительность, но также и большее повреждение данных, если на входном диске есть ошибки, см. Здесь: archwiki на dd
  • noerror продолжается в R / W-ошибок.
  • sync синхронизирует смещения, если произошла ошибка.

Это в основном создаст образ вашего диска sda и запишет его на sdb (та же схема разделов и т. Д.). Конечно, это запишет все 120 ГБ, поскольку это не зависит от файлов. Таким образом, очень безопасно, но не самый быстрый, если вы используете только небольшие части диска. Однако, если входной диск достаточно заполнен, он может быть даже быстрее.

НО:

  • После этого вы, вероятно, захотите изменить размер разделов, иначе вы не сможете воспользоваться дополнительным пространством.
  • В любом случае может потребоваться изменить файл / etc / fstab.
    Это тот случай, если идентификаторы оборудования используются для распознавания дисков.

2
Ваша ddкоманда будет работать вечно. Рассмотрите возможность добавления bs=1Mк нему
Дмитрий Григорьев

Размер блока Afaik не обязательно должен составлять 1 М на SSD, но я посмотрю на это и
обновлю

Ограничение не в технологии SSD, а в bsзначении по умолчанию, которое составляет 512 байт.
Дмитрий Григорьев

1
расширенный ответ с бс, спасибо за хедз-ап
ларки

1
Спасибо за подробный ответ ... Я кое-что узнал! но я решил пойти с clonezilla и изменить размеры разделов впоследствии.
Saeid87

6

В отличие от других ответов, это позволяет вам клонировать установку Linux и добавить ее в меню Grub, не изменяя текущие установки. Кроме того, он автоматически изменяет /etc/fstabдля вас и обновляет grubменю загрузки.

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

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

Полный сценарий можно найти здесь: Bash-скрипт для клонирования Ubuntu на новый раздел для тестирования обновления 18.04 LTS, и вот так выглядит экран:

Клон-ubuntu.png


6

Когда я переключаюсь на новый жесткий диск, я делаю это так:

  • создать макет раздела, который я хочу на новом диске
  • загрузка с Live CD / USB или установка, спасение и т. д.
  • смонтировать старый раздел (ы) жесткого диска для копирования, скажем, /mnt/a
  • смонтировать новый раздел (ы) жесткого диска для получения файлов, скажем /mnt/b
  • cp -aили используйте tar для копирования файлов /mnt/aв/mnt/b
  • установите загрузчик (lilo или grub) на новый диск ¹
  • обновить /etc/fstab(вы можете использовать blkidдля определения новых UUID)
  • перезагрузите компьютер и проверьте, все ли в порядке

Note¹:

Проверьте все жесткие диски и разделы, используя следующую команду:

sudo fdisk -l 

Теперь обратите внимание на раздел, на котором установлена ​​Ubuntu, который будет выглядеть так: /dev/sda1

Смонтируйте раздел, где вам нужно установить GRUB 2 (раздел жесткого диска), и файловая система появится в Nautilus. Теперь нам нужно смонтировать правильный раздел жесткого диска, чтобы внести изменения в фактическую MBR жесткого диска. Для этого нам необходимо:

sudo mount /dev/sda1 /mnt
mount

Теперь смонтируйте раздел в другом месте

sudo mount /dev/sda1 /mnt/boot

Создайте неразрывную ссылку из /devпапки на живом образе, из которого вы загрузились, в /devпапку в разделе, к которому вы подключены/mnt

sudo mount --bind /dev /mnt/dev/

Теперь нам нужно изменить корень с живого корня компакт-диска (/) на корневой каталог смонтированного раздела

sudo chroot /mnt

Теперь вы находитесь в новой корневой оболочке, в которой смонтированный раздел является новым корневым. Вы можете проверить этот набор ls. Так как мы сейчас находимся в смонтированном разделе, мы можем опередить и установить GRUB 2:

sudo grub-install /dev/sda 

Установки должны завершиться сейчас, без ошибок

Выйдите из оболочки CHROOT, набрав exitили нажав Ctrl+, и D вы вернетесь в Live CD / USB Shell

Размонтируйте разделы, которые мы смонтировали ранее, чтобы выполнить чистую перезагрузку:

sudo umount /mnt/dev
sudo umount /mnt/boot
sudo umount /mnt

и перезагрузите компьютер после извлечения Live CD или USB-накопителя для загрузки с жесткого диска:

sudo reboot

Источник


@ baobab33: Вы можете скопировать и вставить инструкции здесь на этот сайт, а затем присвоить атрибуты. Вам не разрешено просто ссылаться на внешний источник. Пожалуйста, также обновите источник с исправлениями выше.
Fabby

0

Я решил провести эксперимент, связанный с этим постом.

Я приобрел Lenovo ThinkCentre. Он имел 256 ГБ SSD и 1 ТБ HDD (тип спиннера - быстрый, но не такой быстрый, как SSD).

Когда я установил Linux Mint 19.2 (LM19.2), он установил его на диск объемом 1 ТБ. SSD оказался невосстановимым, и я купил новый Kingston 240 ГБ SSD.

Я собирался установить LM19.2 на новый SSD, но казалось, что должен быть способ перенести мой хорошо разработанный образ LM19.2 с диска 1 ТБ на новый SSD.

Я нашел этот пост, и, хотя есть несколько убедительных советов выше, я был в режиме эксперимента. Ниже рассказывается о том, что я сделал, и это работало ОЧЕНЬ хорошо.

  1. Я использовал GParted для создания таблицы разделов и разделов на SSD, которые были того же типа, что и на 1 ТБ HDD.
  2. Я выполнил снимок ВСЕГО (нового инструмента в Ubuntu / Linux Mint) TimeShift на жестком диске LM19.2 1 ТБ.
  3. Я восстановил этот снимок на SSD.
  4. После того, как вышеуказанные шаги были выполнены (вы даже можете сделать 1 параллельно с 2 и 3), я перезагрузил компьютер, убедившись, что он выберет SSD.
  5. Единственное, что было странно во время перезагрузки, было то, что начальный экран grub спросил, хочу ли я загрузить Ubuntu. Я предположил, что это было свойственно восстановлению TimeShift, и это было.
  6. Последующие стартапы загружались, как это обычно делает LM19.2.
  7. Я отредактирую этот ответ, как только убедился, что могу сделать это с новым диском, висящим снаружи ПК (и кажется очевидным, что это будет работать), потому что это будет означать, что я могу быстро скопировать любую из моих машин LM на новое оборудование.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.