линукс перенос системы на другой диск

Аникин

Навеяно статьей про перенос freebsd на другой диск. Будем делать тоже самое но на linux. В linux все несколько сложнее.

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

Затем примонтируем его в /mnt

линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск

Теперь нам нужно создать дампы разделов, в данном случае нужно создать только дамп sda1. Установим утилиты dump/restore.

И создаем дамп раздела в файл /mnt/root.img

Создание дампа в /mnt/root.img возможно когда на разделе используется менее 50% от /dev/sdb1. Иначе на разматывание дампа места не хватит. В остальных случаях нужно создавать дамп в другом месте, но не в разделе корня, чтобы дамп не мотал сам себя. Можно использовать раздел другой тачки примонтированный по sshfs, я проверял это прекрасно работает.
Переходим в /mnt и разматываем дамп.

Как видим раздел перенесся на /dev/sdb1. Если у нас /boot на отдельном разделе, то переносим его аналогично.

линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск

Теперь нам нужно установить загрузчик.

Затем если требуется правим /mnt/etc/fstab и меню grub в /mnt/boot/grub/grub.cfg.

Тут немного поясню зачем проверять и править эти файлы. У меня например в этих файлах были прописаны uuid разделов, и если мы уберем старый диск то ОС соответственно не загрузится, т.к у новых разделов у нас другие uuid. Я вместо uuid прописал реальные устройства корня и свопа /dev/sda1 и /dev/sda3. Все устройства sdb, станут у нас sda после извлечение первого диска.

Теперь выключаем тачку, отсоединяем первый диск и загружаемся с нового диска.

P.S. Утилиты dump и restore не ограничиваются переносом ОС с одного диска на другой. Таким образом можно переносить linux вообще на другую тачку с другим железом и дисками. Процедура почти такая же за небольшими изменениями.

Источник

Клонирование системного раздела в Linux

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

Данная процедура потенциально опасна для данных. Любое неверное действие или нюанс, связанный с уникальной настройкой, могут привести к потере данных. Обязательно, выполняем резервное копирование всех важных файлов. Также я рекомендую потренироваться в тестовой среде.

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

Процесс будет выполнен в несколько шагов:

1. Клонирование диска

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

Смотрим состояние дисков и разделов на текущий момент:

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

dd if=/dev/sdx1 of=/dev/sdy1 bs=64K conv=noerror,sync

* Команда выполняет блочное копирование и запускается со следующими параметрами:

* Таким образом, мы клонируем диск или раздел с /dev/sdx1 в /dev/sdy1 (не путаем источник и назначение).

Команда будет выполняться некоторое время. После ее завершения можно снова посмотреть состояние дисков и разделов:

При клонировании диска мы должны увидеть, что целевой носитель приобрел такую же разметку.

Следующим шагом настроим загрузчик.

2. Загрузчик grub2

Для большинства современных систем характерно использование grub2. Его мы и будем рассматривать. Но если в вашем случае используется сервер с grub первой версии, то мы можем обратиться к инструкции How to Migrate the Root Filesystem to a New Disk.

Мы можем увидеть разные варианты строки, указывающей на загрузку системы.

а) В некоторых случаях это будет универсальная строка, которую не нужно менять, например:

GRUB_CMDLINE_LINUX=»crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet»

* в данной строке мы видим, что загрузчик будет искать том LVM centos/root. Так как после клонирования он не поменяется, то нам ничего не нужно редактировать.

б) В некоторых случаях строка может быть пустой:

* в данном примере также от нас не потребуется никаких действий.

в) В некоторых случаях указатель может вести на конкретные диски:

splash=silent quiet showopts»

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

Также стоит иметь ввиду, что если после копирования мы собираемся извлечь диск из компьютера, порядок дисков и имя могут поменяться, что приведет к неработоспособности загрузки.

Стоит сделать тестовое отключение с целью проверки, какое имя станет у диска.

3. Файл fstab

На следующем шаге мы проверяем настройки монтирования корневой директории и раздела boot при загрузке системы. Они задаются в файле fstab.

Есть два надежных способа указать диск при монтировании — использовать его идентификатор или точку монтирования тома LVM. Рассмотрим оба варианта.

Данный способ можно использовать частично, так как раздел boot не может использовать LVM, поэтому данное монтирование будет применяться только к корневому разделу.

Если мы используем LVM, то все, что нам нужно сделать, это открыть файл fstab и проверить, что в нем, на самом деле, используется LVM при монтировании корневого раздела:

Мы можем увидеть что-то на подобие:

.
/dev/mapper/centos-root / xfs defaults 0 0
.

Понять, используется ли LVM можно командой:

Мы должны увидеть пометку lvm:

.
centos-root 253:0 0 13.4G 0 lvm /
.

Как было сказано выше, в случае использования LVM, нам не придется редактировать fstab, так как точка монтирования не поменяется.

Использование идентификатора

Для получения списка дисков с их идентификаторами, вводим команду:

Мы получим что-то на подобие:

/dev/sdb1: UUID=»45053cf4-cb27-40b8-9b63-7f43fb123807″ TYPE=»xfs»
/dev/sdb2: UUID=»Rzg9IW-5zmy-wsdv-mfIJ-HMRV-9Zup-XCcxPi» TYPE=»LVM2_member»
/dev/sda1: UUID=»45053cf4-cb27-40b8-9b63-7f43fb123807″ TYPE=»xfs»
/dev/sda2: UUID=»Rzg9IW-5zmy-wsdv-mfIJ-HMRV-9Zup-XCcxPi» TYPE=»LVM2_member»
/dev/mapper/centos-root: UUID=»97ea6561-8e69-4a9d-b29b-5d6c68a5df64″ TYPE=»xfs»
/dev/mapper/centos-swap: UUID=»db800e72-c138-4050-9949-cf03b779b709″ TYPE=»swap»

* как видим, идентификаторы дисков совпадают, так как команды dd клонирует информацию полностью. Также обратите внимание, что разделы LVM также имеют свои идентификаторы. Это очень важный момент, так как точка монтирования в случае использования LVM должна указывать на него.

Чтобы лучше понять, какой идентификатор нам нужен, смотрим список раздело и их монтирования:

Находим раздел, который соответствует корневому и смотрим его идентификатор. После открываем файл:

Наши записи могут быть, примерно, такими:

UUID=Rzg9IW-5zmy-wsdv-mfIJ-HMRV-9Zup-XCcxPi / xfs defaults 0 0
UUID=45053cf4-cb27-40b8-9b63-7f43fb123807 /boot xfs defaults 0 0

Но также никто нам не запретит использовать гибридный вариант, например:

/dev/mapper/centos-root / xfs defaults 0 0
UUID=45053cf4-cb27-40b8-9b63-7f43fb123807 /boot xfs defaults 0 0

* в данном варианте мы используем том LVM для корня и идентификатор для boot.

Буква (цифра) раздела

Также мы можем использовать монтирование при указании конкретного диска и раздела, например:

/dev/sda2 / xfs defaults 0 0
/dev/sda1 /boot xfs defaults 0 0

Данный метод ненадежный, так как при извлечении дисков или их переключении в другие порты, имена разделов могут поменяться.

4. Перезагрузка

Надеемся, что мы все сделали правильно и перезагружаемся. На данном этапе также могут быть варианты.

а) Если необходимо извлечь старый диск, то выключаем компьютер, отключаем диск, но не убираем его далеко, так как если система не загрузится, необходимо будет его вернуть, подключив в тот же порт материнской платы.

б) Если мы сохранили оба диска, нам нужно убедиться в настройках БИОС/UEFI, что загрузка выполняется с нового диска.

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

Источник

Перенос системы LINUX на другой винчестер с переразбивкой разделов

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

В общем — вот оно. Бейте ногами, режьте на части. Встречайте!

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

Разберем на конкретном примере моей системы. Я собираюсь перенести систему с HDD=80Gb на HDD=20Gb.

Мой диск, объемом 80Gb размечен следующим образом:

/dev/hda1 — /boot (250 Mb)
/dev/hda2 — swap (1Gb)
/dev/hda3 — extended (20Gb) (включает в себя /dev/hda5, /dev/hda6, /dev/hda7, /dev/hda8)
/dev/hda5 — / (5Gb)
/dev/hda6 — /tmp (512Mb)
/dev/hda7 — /usr (10Gb)
/dev/hda8 — /var (5Gb)
/dev/hda4 — /home (54Gb)

/home очень сильно забит информацией, потому его в клонирование я не включаю.

Выставив перемычки как положено, я подключаю новый HDD в систему. Он принял метку hdb
Можно разметить его с помощью ЛЮБОЙ удобной для вас утилиты. Мне было проще воспользоваться GPARTED — так визуально понятнее, да и видно там сразу, сколько реально места занято данными на той или иной партиции, что поможет определить стоит ли выделять столько много (или мало) места.

Я разметил новый диск (/dev/hdb) следующим образом:

/dev/hdb1 — /boot (250 Mb)
/dev/hdb2 — swap (1Gb)
/dev/hdb3 — extended (14Gb) (включает в себя /dev/hdb5, /dev/hdb6, /dev/hdb7, /dev/hdb8)
/dev/hdb5 — / (1Gb)
/dev/hdb6 — /tmp (512Mb)
/dev/hdb7 — /var (5Gb)
/dev/hdb8 — /usr (7Gb)
/dev/hdb4 — /home (4Gb)

Следующим шагом надо подмонтировать все созданные разделы на новом HDD к существующей системе.
Для этого на существующей системе я создал директорию /backup, в которой создал поддиректории /boot, /root, /var, /usr (/tmp — не надо), в соответствии с разделами на которые я разделил новый HDD.
Далее осуществляем само монтирование:

sudo mount /dev/hdb1 /backup/boot
sudo mount /dev/hdb5 /backup/root
sudo mount /dev/hdb7 /backup/var
sudo mount /dev/hdb8 /backup/usr

Вот и подобрались к самому интересному, но отнюдь не самому простому месту, к копированию данных.
В отличии от Windows Linux позволяет скопировать себя ПОЛНОСТЬЮ. Но надо помнить один важный момент — в системе есть аттрибуты на директории и файлы, а так же симлинки и хардлинки. Так вот необходимо так скопировать систему, чтоб все эти связи не растерялись. Для такой процедуры, по мнению больших специалистов, лучше всего подходит команда tar.
Смысл в том, что мы НЕ БУДЕМ архивировать файлы на диск, а будем их переносить через так называемую «трубу» или «поток» на приемный HDD.

Для упрощения процедуры переноса я написал скрипт backup.sh:

немного объясню, что к чему:

«cd /»
— переход в root

Узнать какие директории и файлы надо переносить несложно. Просто выполните команду «ls /» тем самым получив листинг вашей системы начиная с /.
В моем случае это:

ls /
backup boot dev home initrd.img media opt root srv tmp var
bin cdrom etc initrd lib mnt proc sbin sys usr vmlinuz

Из всего этого «добра» нам нужно выделить то что будет находиться в /.
Так, как я выделил отдельные партиции на диске под /boot, /var, /tmp, /usr и /home, получается что их на данном шаге нужно пропустить. Следовательно берем только dev initrd.img opt srv var
bin cdrom etc initrd lib sbin sys vmlinuz

А с остальными проще:
cd /boot
— заходим в существующий /boot

Итак запускаем скрипт backup.sh и идем отдыхать на некоторое время. У меня все заняло около 10 минут.

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

НЕДОСТАТОЧНО просто скопировать данные на партиции /var, /tmp, /usr.
После всех процедур переноса нам необходимо СОЗДАТЬ эти директории на приемном диске, как точки монтирования тех самых партиций (и все те точки монтирования, которые мы исключили при переносе — /home, /media, /tmp, /var, /mnt, /proc, /usr) ОБЯЗАТЕЛЬНО С ТЕМИ ЖЕ аттрибутами! То есть:

sudo mkdir /backup/root/home
sudo mkdir /backup/root/media
sudo mkdir /backup/root/tmp
sudo mkdir /backup/root/var
sudo mkdir /backup/root/mnt
sudo mkdir /backup/root/proc
sudo mkdir /backup/root/usr

Теперь надо на приемном HDD поправить fstab, если необходимо (если вдруг вы СОВСЕМ ПО ДРУГОМУ разметили диск). А так же поправить menu.lst загрузчика GRUB.

вот нам нужны как раз цифры «11815c66-5ae7-4497-9039-51de9adef664», к примеру. Это UUID партиции swap (в моем случае).

в menu.lst правим следующие строки:

# kopt=root=UUID=d4404ea9-0a8e-4a4c-b72d-10a5edd697be ro
(не смотрите что строка закомментирована, при обновлении ядра именно отсюда берется информация)

kernel /vmlinuz-2.6.22-14-generic root=UUID=d4404ea9-0a8e-4a4c-b72d-10a5edd697be ro quiet splash locale

kernel /vmlinuz-2.6.22-14-generic root=UUID=d4404ea9-0a8e-4a4c-b72d-10a5edd697be ro single

Не забудьте тот факт, что хоть система и скопирована на диск, но она пока не умеет загружаться, потому что мы не установили загрузчик.
Делается это просто:
Берем установочный диск UBUNTU и грузимся.
переходим в консоль ctrl+f1

sudo su
grub
find /grub/stage1
root (hd0,0) сюда пишем то что выдала предыдущая команда
setup (hd0) сюда пишем то же самое но до первой запятой.
quit

Все — отсединяем диск от системы, подключаем, проверяем. У меня все заработало.

Просто мне было НЕВАЖНО. И лень расставлять аттрибуты. А таким образом система сделала все за меня.

Источник

Перенос работающей Linux системы на XFS с HDD на SSD меньшего размера

Привет, Хабр! Представляю вашему вниманию русскоязычную версию статьи «Migrating CentOS system from HDD to smaller SSD on XFS filesystem» автора Denis Savenko.

линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск

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

Я думаю я не один, кто в какой-то момент решил преобрести себе SSD-диск для работающей системы. В моём случае это была работающая система на CentOS 7 на моём крошечном домашнем сервере. Далее я хотел перенести её «как есть» на новый диск. Но, как оказалось, это не так то просто сделать, учитывая следующее:

Позвольте мне пояснить, почему описанные мной выше вещи являются серьёзными усложнениями поставленной перед нами задачи.

Во-первых, если бы размер нового диска был таким же или больше, чем у прежнего, можно было бы применить полное клонирование разделов с данными. Для этого существует масса утилит, таких как dd, ddrescue, partclone или даже clonezilla. Единственное, что нужно было бы сделать после, это подправить пару конфигурационных файлов в загрузочном разделе. Если же вы используете LVM для ваших разделов (что также является опцией по умолчанию в CentOS 7), задача могла бы быть ещё проще — в логический том добавляется новый диск, после чего с использованием команды pvmove данные переносятся на другой физический носитель внутри логического тома, и старый диск изымается из раздела, однако это невозможно при меньшем размере нового физического носителя.

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

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

Этап 1. Подготовка

Вот список того, что нам потребуется для переноса:

Этап 2. Миграция

Далее в данном руководстве предполагается, что все команды выполняются от имени суперпользователя ( root )

Шаг 1. Разрешение удалённого доступа (опционально)

Для меня удобнее иметь удалённый доступ к машине, на которой я буду производить перенос, т.к. я имею возможность просто копипастить заранее подготовленные команды в свой PuTTY терминал. Если вы загрузили это руководство в браузере на целевой машине, смело переходите к следующему шагу — всё, здесь описанное, вам не понадобится.

Для того, чтобы разрешить удалённый доступ, необходимо задать пароль для пользователя root и запустить SSH демон:

Теперь можно подключиться к целевой машине вашим SSH клиентом (например, PuTTY).

Шаг 2. Разбивка диска на разделы

Диск следует разбить по образу и подобию прежнего диска. Я не маньяк партиционирования, поэтому моя схема партиционирования была стандартной:

Итак, приступим к разбивке нового диска:

Раздел /boot должен быть стандартным линукс-разделом, поэтому сразу создаём файловую систему на нём:

И теперь нам необходимо создать LVM-структуру для второго раздела на диске. Назовём новую LVM-группу newmain (впоследствии переименуем):

Теперь мы готовы к созданию файловой системы на новых логических разделах:

Шаг 3. Активная фаза

Прежде чем мы начнём, сделаем обе LVM-группы активными (т.к. мы работаем из под Live CD):

Создадим директории для точек монтирования, и примонтируем к системе старые и новые разделы наших дисков:

Убедимся, что всё в порядке при помощи команды lsblk :

Пару слов об использованных флагах:

Эта процедура может занять некоторое время (зависит от объёма ваших данных). Поэтому здесь вам пригодится приготовленная заранее чашка кофе, которую самое время выпить, а то остынет.

Если всё прошло хорошо, ваши данные были полностью скопированы с сохранением всех метаданных. Теперь необходимо подправить пару конфигурационных файлов и переустановить Grub2 на новый диск, чтобы сделать его загрузочным.

Шаг 4. Делаем новый диск загрузочным

Первое, что нужно сделать, это узнать UUID для старого и нового загрузочных разделов ( /boot ) при помощи команды blkid :

Эти две команды подготовят ваши системные файлы конфигурации к новому диску.

Теперь самое время переименовать LVM-группы и отмонтировать диски:

Единственное, что осталось сделать, это переустановить загрузчик. Это необходимо делать с использованием chroot :

Шаг 5. Последний штрих

На данном этапе все данные уже должны быть перенесены и новый диск должен стать загрузочным. Нужно только перезапуститься, вынуть Live CD из привода, и выбрать новый диск в BIOS для загрузки:

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

Использование старого HDD в качестве медиа-хранилища

Если вы, как и я, после переноса системы, хотите использовать ваш прежний диск как медиа-хранилище, это делается также легко.

Во-первых, переразбейте прежний диск

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

Для того, чтобы сохранить изменения после перезагрузки системы, следует также добавить запись о точке монтирования в /etc/fstab :

Готово!

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

UPDATE 02.04.2018

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

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

Источник

Линукс перенос системы на другой диск

линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск

Такая задача возникает достаточно редко. Обычно, проще переустановить систему заново, чем переносить уже установленную версию на другой жёсткий диск или другой раздел. Но если у вас там есть важные программы, которые нежелательно удалять, или вы меняли настолько много настроек в системе, что её установка заново займёт намного больше времени, чем её перенос, то перенос будет предпочтительнее.

В этой статье мы рассмотрим, как перенести Linux на другой диск с помощью утилиты cp или архива tar. Второй способ интересен ещё тем, что вы можете создать резервную копию всей системы, а затем просто восстановить её при возникновении проблем.

Как перенести Linux на другой диск

Поскольку все данные, настройки и объекты операционной системы Linux — это файлы, то вы можете перенести свою операционную систему куда нужно, просто скопировав все нужные файлы. В Windows так де просто не получится, так, как там более сложная файловая система со сложными зависимостями.

1. Подготовка к переносу

Сначала рассмотрим, как использовать утилиту cp для переноса файлов операционной системы. В папку /mnt примонтируйте раздел, на котором будет располагаться новый Linux. Например, это /dev/sdb1:

sudo mount /dev/sdb1 /mnt

линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск

Теперь нужно рекурсивно скопировать все файлы из текущего корня в нашу папку /mnt. Лучше всего это делать, загрузившись с LiveCD диска, тогда точно все нужные данные будут сохранены. Но это не обязательно, вы можете делать перенос и работающей системы, только перед этим остановите все запущенные базы данных и сервисы по максимуму, чтобы они сохранили свои настройки и вы ничего не потеряли в новой версии системы. Например, если у вас запущена база данных MariaDB или MySQL, то её нужно остановить:

sudo systemctl stop mariadb

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

2. Перенос Linux утилитой cp

Далее можно запускать сам перенос Linux на другой диск. Для этого запустите утилиту cp с опциями -a, -r и —x. Первая опция включает сохранение исходных прав и метаданных файла, вторая — рекурсивный обход файловой системы, а третья ограничивает рекурсию только текущей файловой системой:

линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск

Поскольку будут копироваться только файлы из текущей файловой системы, то если ваши каталоги /boot и /home находятся на других разделах, то их нужно скопировать отдельно:

Если вам не нужна домашняя папка, то вы можете её не копировать.

3. Перенос Linux утилитой tar

Это альтернативный вариант переноса, если вы не хотите использовать cp, то можете применить tar. Чтобы сразу перенести файлы в другое расположение, нужно создать туннель, на одном конце которого данные будут запаковываться, а на другом — распаковываться:

Опция -p — заставляет утилиту сохранять метаданные файлов при переносе. Опция —one-file-system указывает, что утилита будет брать файлы только из корневой файловой системы, поэтому все примонтированые файловые системы, как и в предыдущем варианте, будут пропущены. Поэтому каталоги /boot и /home вам придётся копировать аналогичной командой. Или же можно не использовать эту опцию и передавать всё, кроме ненужного:

Также вы можете создать архив, а потом его куда-нибудь скопировать, чтобы иметь резервную копию системы:

линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск

Вместо опции —one-file-system можно использовать опции —exclude, чтобы исключить ненужные каталоги, как в предыдущей команде. А для распаковки используйте команду:

Здесь, /mnt — это каталог, в который нужно извлечь файлы архива.

4. Перенос с помощью rsync

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

5. Правка /etc/fstab

Далее будем работать только с новой системой. Первым делом нужно исправить файл /etc/fstab, чтобы там был указан правильный UUID корневого раздела. Узнать UUID нужного раздела можно командой blkid:

линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск

Теперь замените полученным UUID, значение этого параметра корневого раздела в /mnt/etc/fstab:

sudo vi /mnt/etc/fstab

линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск

6. Установка загрузчика

Далее нужно установить загрузчик Grub в новом Linux. Сначала примонтируйте в него папки /sys, /proc и /dev:

линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск

Затем войдите в chroot окружение:

Затем установите загрузчик на тот диск, на который вы переносили Linux, в моём случае это /dev/sdb:

sudo grub-install /dev/sdb

линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск

И осталось только создать конфигурационный файл для загрузчика:

линукс перенос системы на другой диск. Смотреть фото линукс перенос системы на другой диск. Смотреть картинку линукс перенос системы на другой диск. Картинка про линукс перенос системы на другой диск. Фото линукс перенос системы на другой диск

В дистрибутивах, не основанных на Ubuntu, вместо update-grub2 можно использовать команду:

7. Перезагрузка

Выйдите из chroot-окружения командой:

Затем размотрируйте системные каталоги и ваш раздел:

sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt

И перезагрузите компьютер. В BIOS вашего компьютера нужно выбрать диск, на который вы переносили Linux, в качестве первого источника для загрузки. После загрузки вы будете уже в новой операционной системе и всегда сможете вернуться в старую.

В этой статье мы разобрали, как перенести Linux на другой жёсткий диск с помощью утилит tar, cp или rsync. Как видите, это достаточно просто и быстро. Ещё мы могли бы использовать утилиту dd, однако она копирует весь диск побайтово, поэтому будет работать дольше и её архивы будут занимать больше места на диске. Ещё можно воспользоваться инструментом Clonezilla.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *