Как клонировать линукс на флешку

Обновлено: 07.07.2024

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

  1. одна и таже система на всех компьютерах (их около 2-х десятков);
  2. та самая система уже настроена после установки/копирования.

Система обычно стоит на /dev/sda1, а что бы проверить это используем команду , в моем случае исходный: /dev/sda, а целевой: /dev/sdb. Так же, по необходимости, той же командой можно форматировать целевой диск, а файловую систему и swap, командами mkfs и mkswap.
ВАЖНО: не забудьте новый раздел системы сделать bootable.

Монтируем раздел целевого диска для дальнейшей работы будем использовать папку /mnt/clone.

Этап 1:
Клонирование или копирование всей системы в целевой раздел диска ключ a архивирует данные, а ключ x не дает копировать не существующих разделов.

После успешного копирования плавно переходим на другой раздел монтируя важнежшие части текущей системы на новый раздел (временно):

И перелазим на новую корневую диреторию:

Этап 2:
Настраиваем логово. У нового раздела другой UUID, быстро присобачить его вот так: так же если у Вас есть еще и swap раздел то выполните команду повторно с применением номера раздела swap:

Так же не забываем обновить ядро, что бы изминения в fstab имели весомый характер:

Теперь осталось обновить конфигурацию GRUB и установить его в MBR нового диска /dev/sdb, но в нашем случае будет использоваться «Recovery Mode» GRUB'а, по этой причине предварительно в файле /etc/defaults/grub активируем его, а после выполняем:

Наконец, конфеты, удаление списка «ethernet устройств», да бы избежать переименования интерфейса eth0 в eth1 и т.п. при установке жесткого диска в другой компьютер


Это избавит нас от редактирования /etc/network/interfaces.

Этап 3:
Кладем коробку на место. Выходим с нового корня и размонтируем все что с ним связано:

Этап REBOOT:
Во время загрузки GRUB'a кратковременно жмем курсор вниз пока не попадем на меню с выбраным элементом в конце которого (recovery mode). Жмем e и переходим во временное редактирование пункта, в тексте меняем /dev/sdb на /dev/sda, а у некоторых это могут быть hd1 на hd0. После этого клавишей F10 запускаем временный пункт.

Система при загрузке попросит root'овый пароль, после ввода выполняем:

Таким образом фиксируем то что изменили в меню GRUB'a и теперь со спокойной душой уходим в REBOOT.

В настоящее время существует множество утилит, с помощью которых можно создать загрузочную флешку, какую можно использовать для запуска компьютера в режиме LiveUSB и для установки OS Linux 1) . Такие утилиты существуют как для Windows 2) , так и для Linux 3) .

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

Метод, о котором пойдет речь в данной статье позволяет установить полноценную ОС Linux на USB-накопитель (флешка, карта памяти, USB-HDD). Загрузившись с созданной этим методом флешки, вы сможете работать с операционной системой так, как если бы она была установлена на жестком диске.

Подготовка к установке

Для работы потребуется:

Компьютер с операционной системой Windows (Linux, MacOS); Пустая флешка на 8 ГБ (или карта памяти того же объема), желательно отформатированная в нежурналируемой файловой системе (NTFS, ext2 и т.д.).

Устанавливаем программу VirtualBox (если она еще не установлена). Создаем виртуальную машину (ВМ) с такими характеристиками:
Операционная система: Linux;
Версия: Ubuntu;
Размер основной памяти: 512 МБ
Загрузочный диск:
Тип файла: VDI
Размер: 7 ГБ
В свойствах созданной виртуальной машины выбираем вкладку «Система» и в списке ставим первым CD/DVD-ROM. В качестве привода оптических дисков
выбираем ubuntu….iso (например, у меня 11.04-desktop-i386.iso), запускаем виртуальную машину и устанавливаем на нее Ubuntu. При установке Ubuntu лучше выбрать авторазметку, вполне надёжно справляется, и файловую систему ext2, а лучше ext4 с отключённым журналом 7) , т.к. система будет на флешке и, желательно, сразу настроить под свои нужды 8) . После того, как ОС установится, выключаем ВМ.

Далее, нам необходимо подключить флешку к виртуальной машине. Для этого подключаем флешку к компьютеру, в Свойствах-Настроить ВМ открываем вкладку USB, нажимаем на кнопку «Добавить из устройства» и в выпадающем списке выбираем подключенную флешку.


Запустим ВМ и убедимся, что флешка действительно подключена.


Выключаем ВМ. В качестве оптического привода выбираем pmagic.iso и снова запускаем ВМ.

В случае отклонения и требования выхода (exit) Parted Magic запуск как:


Установка

Теперь перенесем операционную систему Ubuntu с виртуальной машины на флешку. Для этого заходим в Основное меню оболочки PartedMagic и запускаем программу Clonezilla.


Выбираем режим «device-device»


Выбираем режим «Beginner»


В следующем окне выбираем режим «disk_to_local_disk»


Выбираем диск, на который мы установили Ubuntu (sda)


Далее выбираем флешку (sdb)



Clonezilla попросит для продолжения нажать клавишу Enter


Далее, вас несколько раз спросят, уверены ли вы в том, что хотите продолжить? На все вопросы отвечаем «Да» (Y)


Начнется процесс клонирования диска


Если все прошло успешно, программа попросит нажать клавишу Enter после чего закроется.


Вот и все, флешка готова. Можно выключать ВМ и использовать созданную флешку для запуска ОС Linux на любом компьютере (даже без жесткого диска).

Напоследок, хочу предупредить об одном недостатке данного метода: если флешка будет иметь файловую систему ext2/ext4, значит ей нельзя будет пользоваться для хранения данных в ОС Windows. К тому же, если вы захотите отформатировать флешку и сделаете это в Windows, ее размер станет меньше (около 6 ГБ). Для того, чтобы этого не случилось, советую воспользоваться программой PartitionEditor, которая находится на диске PartedMagic.

У меня есть загрузочная USB-карта Ubuntu емкостью 32 ГБ с постоянным хранилищем.

USB-накопитель емкостью 32 ГБ заполняется, поэтому я хочу клонировать его на USB-накопитель емкостью 64 ГБ и увеличить и casper -rw и раздел usbdata .

Как я могу сделать это , не теряя при этом никаких данных ?

Вот как я клонировал флешку на 32 ГБ в флешку на 64 ГБ. Сначала я выполнил следующую команду:

lsblk result on terminal

и получил такой результат:

Во-вторых, я использовал команду DD:

В-третьих, я выключил компьютер, вынул 32 ГБ флешку и включил компьютер. Система загрузилась корректно с нового USB-накопителя, и, похоже, все файлы есть.

GParted snapshot

Далее, я загрузил утилиту GParted, и вот снимок:

Теперь вернемся к моему первоначальному вопросу: как мне действовать, чтобы увеличить Разделы casper-rw и usbdata, использующие свободное / нераспределенное пространство без потери данных?

2 ответа

Клон с mkusb

Можно клонироваться с диска на другой диск с mkusb . Запустите через графический интерфейс или с

где x является буквой устройства или источником в операции клонирования. Цель будет выбрана безопасным способом с помощью меню.

  • mkusb переносит ремень безопасности dd
  • если существует таблица разделов GUID, GPT, mkusb фиксирует таблицу резервного раздела в заключительной части диска. (Иначе необходимо сделать это вручную, например, с gdisk .)

После того, как клонирование Вас может отредактировать разделы с gparted . Если Вы затрагиваете только casper-rw раздел и usbdata раздел (AMD, если таблица разделов MS-DOS расширенный раздел), начальная загрузка не будет затронута.

  • Убедитесь, что у Вас есть резервное копирование (например, исходный диск).
  • Читайте, как использовать gparted .
  • Начальная загрузка от другого диска
  • Размонтируйте все разделы на целевом диске
  • Запустить gparted и проверьте, что существует, не соединяют символы /dev/sdb1 и /dev/sdb5 .
  • Переместиться /dev/sdb1 к заключительной части (направо)
  • Перетащите его левую границу /dev/sdb1 налево, пока размер не то, что Вы хотите
  • Перетащите правильную границу/dev/sdb5' к праву использовать все остающееся освобожденное дисковое пространство. Эти два раздела должны 'коснуться друг друга'.
  • Проверьте, что вещи состоят в том, поскольку Вы хотите их.
  • Нажмите в кредит значок для запуска действий.
  • Ожидайте. будет требоваться много времени. Убедитесь, что существует достаточно питания (не работайте от батареи).

Если Вы клонировались с dd необходимо восстановить таблицу резервного раздела в заключительной части диска с gdisk или, возможно, используйте, gpt-фиксируют.

где "$1" должен быть заменен целевым устройством /dev/sdx , если выполнено непосредственно (не в рамках сценария оболочки).

В этих буквах команды объясняют

в меню эксперта

и в меню восстановления и преобразования

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

Ссылки добавляются OP, @BlueSkies:

После клонирования с mkusb копирование делит от исходной карты с интерфейсом USB и начальной загрузки от ново-большей палки, я не могу получить доступ к usbdata.

Access to usbdata partition blocked

Совет.Спасибо!

Совет: отправьте вывод следующих командных строк (при начальной загрузке от ново-большей палки)

где Вы вводите фактические точки монтирования для наблюдения usbdata и casper-rw .

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

Отредактируйте свой исходный вопрос ввести эти синтезируемые тексты вместо здесь в моем ответе. Располагают с отступом каждая строка 4 символа для рендеринга вывода как кода. Можно отметить (выделяют) текст и нажимают <> значок во главе окна редактирования для создания тех добавлений отступа быстро.

07 дек 2018, 22:34

После этого попробовал запустить dd следующим образом: Думал минут 20. После окончания посмотрел в ФМ - каталоги не совпадают.
Почитал еще руководств. Пообщался в чате. Додумался удалить раздел на sdc. Для этого использовал GParted. Естественно он предложил отмонтировать sdc. После отмонтирования повторил dd Вроде все тоже самое, но структура папок перенеслась полностью. Казалось бы "алилуйя!" Но при попытке загрузить комп с этой флешки (№2) пишет что-то про неисправный BootRec (не представляю как сделать скриншот). С флешки (№1) загрузка в live режиме проходит, и дальше можно продолжать установку (но мне на моем компе это не нужно).
по совету Slant'a отмонтировал и первую флешку тоже. И запустил dd от пользователя, а потом и от рута через sudo.

. с клона загрузочной флешки загрузиться не удалось.

Соответственно два вопроса:
1. ЧЯДНТ?
1.1. Полувопрос не совсем в тему (но любопытно): По ссылке на которую я опирался (в "руководстве к действию) говорят, что bs зависит от кеша диска.
Так вот: Как узнать какой кеш у флешки (-ек), чтобы ускорить клонирование? 20 минут, кмк на 32 ГБ как-то долговато. вам так не кажется?

2. и может быть кто знает более простые способы склонировать флешку? (утилиты, программы, свои "маленькие хитрости")

По задаче из топика.
1. Если решать задачу через команду dd, то самым действенным набором операндов (в моем случае) для нее оказались за советы спасибо 027 ,
2. Если ваш DE не KDE, а какой-то на гномовых библиотеках, то по совету colonel , можно воспользоваться утилитой Диски. Из-за отсутствия таковой на моем компьютере проверить не смог.
3. По совету x230 , можно воспользоваться

Также из близких по смыслу вариантов можно воспользоваться clonezill'ой. Но для текущей задачи (клонирование флешки) грузиться с livecd с клонзилой мне показалось сложноватым ходом.
4. Еще colonel , подкинул ссылку в которой предлагают использовать для подобных задач такие команды как cat image.iso > /dev/sdb или cp image.iso /dev/sdb . Там же обсуждаются плюсы и минусы этих вариантов.

Спасибо также slant и WWolf помогавшим мне советами в чате.
Пожалуй, это все, что меня интересовало по этому вопросу.

Последний раз редактировалось пользователем 1 StarMAUGLI; всего редактировалось раз: 8

клонирование флешки

07 дек 2018, 22:47

Это чтоб не скучно было. Инструкции из инета «дрочить дд через USR0» забыть, как страшный сон.
Это чтоб не использовался кэш записи. Можно и без этого ключа, но после отработки dd запусти обязательно sync и дождись окончания. Терпеливо!
Спешка нужна при ловле блох и при поносе. Все остальное нужно делать постепенно.
20 минут, кмк на 32 ГБ как-то долговато. вам так не кажется? Флешки бывают оооочень разные. Для 4 класса — дай Б-г, чтоб гигов пять записалось.

клонирование флешки

07 дек 2018, 23:41

Можно и без этого ключа, но после отработки dd запусти обязательно sync и дождись окончания. Т.е. винда не грузится из-за того, что синхронизация не прошла?

клонирование флешки

08 дек 2018, 00:00

А в случае uefi - там все проще и одновременно сложнее, т.к. от самой конкретной uefi может зависеть.

клонирование флешки

08 дек 2018, 00:18

Т.е. винда не грузится из-за того, что синхронизация не прошла? Типа того. Вместо полной записи огрызок, прерванный на полуслове. Это моя гипотеза, основанная на вашей торопливости (32 гига за 20 минут, ага).
Команда sync сбрасывает кэш записи на все блочные устройства. Если выдрать флешку раньше, она не допишется.
А что там у вас на самом деле, мне отсюда не видно. Одно могу сказать: Додумался удалить раздел на sdc. Для этого использовал GParted. Естественно он предложил отмонтировать sdc. После отмонтирования повторил dd похерила ваши упражнения с разделами на /dev/sdc. Все содержимое было перезаписано.
А вот это:

по фигу, можно вообще не указывать, или напсать 4М, например. Это размер блока, который dd будет прожевывать за раз. Влияет на скорость и оптимальность работы, но не на результат записи.

quote=slant post_id=70760 time=1544216404 user_id=726]
А еще может быть такая подлая штука, как тупой контроллер у второй (целевой) флешки.
[/quote]
Тоже может.
Короче, я бы проделал для начала

дождавшись окончания записи!

И, кстати, может оказаться еще один прикол — целевая флешка фейковая. Скажем, на 16 или даже 8 гигов, а не на 32.

клонирование флешки

08 дек 2018, 00:36

— целевая флешка фейковая. Скажем, на 16 или даже 8 гигов, а не на 32. Не. Ну это-то навряд ли. Я же привел под спойлером df -h и lsblk А какие еще есть программы кроме dd которые можно было бы попробовать?

Короче, я бы проделал для начала

Код: Выделить всё

sudo dd if=/dev/sdb of=/dev/sdc status=progress oflag=sync

дождавшись окончания записи!

Последний раз редактировалось пользователем 1 StarMAUGLI; всего редактировалось раз: 8

клонирование флешки

08 дек 2018, 00:57

А какие еще есть программы кроме dd которые можно было бы попрбовать?

О! Хороший вопрос.
Особенно приятно отсутствие буквы «ы» в слове «попробовать».

С тупейшей программой копирования файлов dd может конкурировать только тупейшая программа копирования файлов cp Сокращение от аглицкого слова copy (копировать куда-нибудь), а не от русского срать (куда-нибудь). Хотя.

Вам нужно понять, что в юникс-подобных системах «всё есть файл». (Как всегда в сложных системах, есть нюансы, но не в этом простом случае.)

В данном случае команда dd тупейшим образом копирует посекторно файл (инпут файл, if) if=/dev/sdb в аутпут файл of=/dev/sdc .
Файл /dev/sdb — это исходная флешка.
Файл /dev/sdc — это целевая флешка.

Если на флешке есть запись о разделе №1, линукс будет видеть, кроме /dev/sdc (флешка целиком) еще и отдельно раздел на этой флешке — /dev/sdc1 — в виде отдельного самостоятельного файла.
А если скомандовать

программа копирования будет писать содержимое ВСЕЙ флешки №1 в ПЕРВЫЙ РАЗДЕЛ размеченного пространства на флешке №2.
И саму разметку разделов не затронет.

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

Читайте также: