Как клонировать раздел или жесткий диск в Linux
Существует множество причин, по которым вы можете захотеть клонировать раздел Linux или даже жесткий диск. Большинство из которых связаны с созданием резервных копий ваших данных. Существует несколько способов добиться этого в Linux с помощью некоторых внешних инструментов, таких как partimage или Clonezilla.
Однако в этой статье мы рассмотрим клонирование дисков Linux с помощью инструмента под названием dd, который чаще всего используется для преобразования или копирования файлов.Поставляется dd предустановленным в большинстве дистрибутивов Linux.
Клонирование диска
Первым делом мы создаем полную копию нашего диска. Это единственный этап, который может быть выполнен без нюансов на любой из систем, так как он выполняется с помощью утилиты dd.
Смотрим состояние дисков и разделов на текущий момент:
Определяемся, с какого диска на какой мы будем выполнять копию. Это может прозвучать банально, но тут важно не перепутать источник диска, с которого клонируется информация и целевой носитель.
dd if=/dev/sdx1 of=/dev/sdy1 bs=64K conv=noerror,sync
* Команда выполняет блочное копирование и запускается со следующими параметрами:
- if — источник данных.
- of — куда копировать данные.
- bs — объем блока, который будет читаться и копироваться за раз.
- conv — дополнительные опции. В данном примере noerror — продолжать операцию в случае ошибки чтения данных; sync — копировать все, в том числе и нулевые данные.
* Таким образом, мы клонируем диск или раздел с /dev/sdx1 в /dev/sdy1 (не путаем источник и назначение).
Команда будет выполняться некоторое время. После ее завершения можно снова посмотреть состояние дисков и разделов:
При клонировании диска мы должны увидеть, что целевой носитель приобрел такую же разметку.
Следующим шагом настроим загрузчик.
Акронис 9
Акронис 9 версии Внедряет ОС из образа, сделанного на одном железе, в другое железо. Правда это дополнительная утилита которая не идет с основной поставкой, хотя и присылается бесплатно по прсьбе
официального покупателя акронис.
Это понятно, но здесь ведется разговор про переносе ОС средствами самой ОС.
My honour with me! I — Ne01eX
Протянув руку помощи, не забудь разжать кулак.
Устройство к устройству клонирования
Если вы не заинтересованы в создании резервной копии устройства для образа, Clonezilla предлагает другой вариант: клонирование устройства на устройство. Эта опция позволяет пользователю сделать точную копию любого жесткого диска. Чтобы выполнить клонирование устройства на устройство, выберите «устройство-устройство» в меню запуска в Clonezilla.
Замечания: Убедитесь, что жесткий диск, который вы планируете клонировать, подключен, прежде чем запускать этот процесс (либо через USB, либо изнутри).
На следующей странице выберите режим «Начинающий». Это делает процесс клонирования Clonezilla намного проще для понимания.
Отсюда мастер просит пользователя выбрать метод клонирования. Чтобы клонировать с одного жесткого диска на другой, выберите «disk_to_local_disk».
Выберите в меню жесткий диск, который вы хотите клонировать (он же исходный диск), и нажмите клавишу ввода, чтобы продолжить.
Затем выберите жесткий диск для использования в качестве целевого диска. Это жесткий диск, на который будет клонирован первый диск.
Со всеми этими настройками можно начать процесс клонирования. Имейте в виду, что копирование данных занимает очень много времени, даже через соединения Sata / PCI. НЕ отключайте компьютер от сети и не выключайте его. Будьте терпеливы, и через некоторое время Клонезилла закончит клонирование.
По завершении перезагрузите компьютер.
Как перенести 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. Первая опция включает сохранение исходных прав и метаданных файла, вторая — рекурсивный обход файловой системы, а третья ограничивает рекурсию только текущей файловой системой:
sudo cp -rxa / /mnt/
Поскольку будут копироваться только файлы из текущей файловой системы, то если ваши каталоги /boot и /home находятся на других разделах, то их нужно скопировать отдельно:
sudo mkdir /mnt/
sudo cp -rxa /boot /mnt/boot/
sudo cp -rxa /home /mnt/home/
Если вам не нужна домашняя папка, то вы можете её не копировать.
3. Перенос Linux утилитой tar
Это альтернативный вариант переноса, если вы не хотите использовать cp, то можете применить tar. Чтобы сразу перенести файлы в другое расположение, нужно создать туннель, на одном конце которого данные будут запаковываться, а на другом — распаковываться:
sudo tar -cpv —one-file-system / | sudo tar -x -C /mnt
Опция -p — заставляет утилиту сохранять метаданные файлов при переносе. Опция —one-file-system указывает, что утилита будет брать файлы только из корневой файловой системы, поэтому все примонтированые файловые системы, как и в предыдущем варианте, будут пропущены. Поэтому каталоги /boot и /home вам придётся копировать аналогичной командой. Или же можно не использовать эту опцию и передавать всё, кроме ненужного:
sudo tar -cpv —exclude /mnt —exclude /dev —exclude /sys —exclude /proc —exclude /tmp —exclude /run / | sudo tar -x -C /mnt/
Также вы можете создать архив, а потом его куда-нибудь скопировать, чтобы иметь резервную копию системы:
sudo tar -cvpzf system.tar.gz —exclude system.tar.gz —one-file-system /
Вместо опции —one-file-system можно использовать опции —exclude, чтобы исключить ненужные каталоги, как в предыдущей команде. А для распаковки используйте команду:
sudo tar xvzf system.tar.gz -C /mnt
Здесь, /mnt — это каталог, в который нужно извлечь файлы архива.
4. Перенос с помощью rsync
Утилитой rsync многие не хотят пользоваться, но она очень удобная, работает достаточно быстро и отображает прогресс копирования. Для переноса с помощью rsync выполните:
Эта команда работает аналогично команде tar, копирует всё что есть в новое расположение. Опции -aAX включают сохранение всех метаданных файла, символических ссылок, владельцев, групп, и так далее.
5. Правка /etc/fstab
Далее будем работать только с новой системой. Первым делом нужно исправить файл /etc/fstab, чтобы там был указан правильный UUID корневого раздела. Узнать UUID нужного раздела можно командой blkid:
Теперь замените полученным UUID, значение этого параметра корневого раздела в /mnt/etc/fstab:
sudo vi /mnt/etc/fstab
6. Установка загрузчика
Далее нужно установить загрузчик Grub в новом Linux. Сначала примонтируйте в него папки /sys, /proc и /dev:
sudo mount —bind /sys /mnt/sys
sudo mount —bind /proc /mnt/proc
sudo mount —bind /dev /mnt/dev
Затем войдите в chroot окружение:
sudo chroot /mnt
Затем установите загрузчик на тот диск, на который вы переносили Linux, в моём случае это /dev/sdb:
sudo grub-install /dev/sdb
И осталось только создать конфигурационный файл для загрузчика:
В дистрибутивах, не основанных на Ubuntu, вместо update-grub2 можно использовать команду:
sudo grub2-mkconfig -o /boot/grub/grub.cfg
7. Перезагрузка
Выйдите из chroot-окружения командой:
Затем размотрируйте системные каталоги и ваш раздел:
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt
И перезагрузите компьютер. В BIOS вашего компьютера нужно выбрать диск, на который вы переносили Linux, в качестве первого источника для загрузки. После загрузки вы будете уже в новой операционной системе и всегда сможете вернуться в старую.
doClone
DoClone – бесплатный проект, разработанный на C ++ для создания или восстановления образов систем GNU / Linux.
Он также может работать в локальной сети для передачи данных внутри компьютеров.
Этот инструмент обеспечивает простой способ управления установкой GNU / Linux в офисах или школах, включая машины с различным оборудованием, например разные размеры жесткого диска, используя только пространство, требуемое данными.
Особенности, как говорит сайт.
- Поддерживает 12 файловых систем.
- Поддерживает 9 ярлыков дисков.
- Клоны дисков или разделов разных размеров.
- Системы клонов selinux.
- Восстановление загрузчика GRUB.
- Многократное клонирование в локальной сети.
- Клонирование UUID и файловой системы.
- Живое клонирование: система может создавать образы самого себя.
- Эта программа является бесплатным программным обеспечением и распространяется в соответствии с лицензией GNU GPL v3.
Знакомство с dd
Если вам интересно, название dd относится к выражению в языке управления заданиями IBM. Если вы не понимаете, что там происходит, не парьтесь. Это не делает команду сложнее в использовании.
Нужна дополнительная информация по работе с dd? Вики-страница довольно подробна. Также есть отличная статья на вики Arch Linux. Опять же, неважно, используете ли вы Arch или нет. dd работает одинаково независимо от операционной системы Linux.
Клонирование диска
Первым делом мы создаем полную копию нашего диска. Это единственный этап, который может быть выполнен без нюансов на любой из систем, так как он выполняется с помощью утилиты dd.
Смотрим состояние дисков и разделов на текущий момент:
Определяемся, с какого диска на какой мы будем выполнять копию. Это может прозвучать банально, но тут важно не перепутать источник диска, с которого клонируется информация и целевой носитель.
dd if=/dev/sdx1 of=/dev/sdy1 bs=64K conv=noerror,sync
* Команда выполняет блочное копирование и запускается со следующими параметрами:
- if — источник данных.
- of — куда копировать данные.
- bs — объем блока, который будет читаться и копироваться за раз.
- conv — дополнительные опции. В данном примере noerror — продолжать операцию в случае ошибки чтения данных; sync — копировать все, в том числе и нулевые данные.
* Таким образом, мы клонируем диск или раздел с /dev/sdx1 в /dev/sdy1 (не путаем источник и назначение).
Команда будет выполняться некоторое время. После ее завершения можно снова посмотреть состояние дисков и разделов:
При клонировании диска мы должны увидеть, что целевой носитель приобрел такую же разметку.
Следующим шагом настроим загрузчик.
• Страны посетителей
В большинстве случаев дисковое пространство можно расширить, добавив в систему новый LUN. Но в некоторых случаях для расширения файловой системы может потребоваться изменить размер существующего LUN. Расширение файловой системы включает в себя две части: расширение соответствующего логического тома и последующий рост ФС над ним. Добавление, изменение размера или удаление LUN в системе Linux может быть.
rmdir – одна из тех базовых команд Linux, которые вы изучите в самом начале, но почти не будете использовать. Почему? Потому что может показаться, что rmdir используется для удаления каталогов (т.е. папок), на самом деле по умолчанию она удаляет только пустые каталоги. Запутались? Не стоит. Давайте разберемся в этом подробнее. Использование команды rmdir на Linux.
Проблема: При обновлении версии ОС Ubuntu я столкнулся со следующей проблемой при выполнении команды do-release-upgrade. Даже все текущие пакеты были обновлены с помощью apt upgrade. sudo do-release-upgrade Мы столкнулись с известной проблемой, которая не позволила нам продолжить обновление. Вы увидите следующее сообщение об ошибке: Checking for a new Ubuntu release Please install all available updates.
Давайте посмотрим, как исправить ошибку “bash: add-apt-repository: command not found” в системе Ubuntu/Debian Linux при выполнении команды add-apt-repository. Когда вы пытаетесь добавить ansible PPA в Debian или Ubuntu Linux, вы получите следующую ошибку: sudo apt-add-repository ppa:ansible/ansible bash: add-apt-repository: command not found Далее мы покажем решение. Исправить эту ошибку можно следующим образом: Откройте приложение терминала на.