Как сделать полную загрузочную резервную копию моего внутреннего диска на внешний диск? Проблема с повторяющимися UUID

cut отлично подходит для простых случаев, когда разделитель представляет собой один символ, и вы хотите вывести подмножество полей ввода в том же порядке (даже если я укажу -f3,2,1 , действует так же, как -f1,2,3 ).

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

Например, wc -l myfile | awk '{print $ 1}' или ls -l file1 file2 | awk '{printf "% s,% s:% s \ n", $ 9, $ 7, $ 3}' очень просты, но их трудно сделать с cut .

Я согласен с предыдущими сообщениями о том, что поля / ключи в sort сложно определить! Поля в join , похоже, работают так же, как в cut , хотя в параметрах join легко ошибиться.

2
19.03.2019, 04:48
6 ответов

Вы не упомянули типы файловых систем, но можете изменить UUID и сгенерировать случайные:

uuidgen

Затем вы можете изменить его в разделе. Для доп. -семейства...

tune2fs -U <output of uuidgen> /dev/sdb1

Дополнительную информацию см. на этой странице .

Обратите внимание, что на этом этапе вы также захотите изменить загрузчик (, если grub, то в большинстве случаев вы можете отредактировать /boot/grub/grub.cfg ), а также fstab, чтобы отразить изменения UUID.

По моему скромному мнению, одним из вариантов будет отключение внутреннего диска на время использования внешнего. IIRC, раньше для этого были переключатели (, например. коммутатор устанавливается в отсек 3,5" или 5,25" ).

0
27.01.2020, 21:53

Лучше отключить/отключить внутренний диск.

Но...

Фактически вы можете изменить UUID вашего резервного диска после резервного копирования. Не забудьте сделать это для каждого раздела. Например/dev/sdb1:

# Generate a random UUID:
cat /proc/sys/kernel/random/uuid
7a5e6fad-4fa2-4177-b8a6-dfeeeb6289df

# Then use this for the partition UUID
tune2fs -U 7a5e6fad-4fa2-4177-b8a6-dfeeeb6289df /dev/sdb1

Затем в резервной копии.... Проверьте следующие файлы на наличие старых UUID и замените их новыми. Вам нужно будет заменить <distribution>на вашу ОС:

/etc/fstab
/boot/grub/grub.cfg
/boot/efi/EFI/<distribution>/grub.cfg

Более сложной задачей будет убедить BIOS использовать внешний раздел EFI. Если вы не можете указать, какой диск использовать... Возможно, вам потребуется скопировать конфигурацию EFI на основной диск (, например:/boot/efi/EFI/debian/на /boot/efi/EFI/backup/), и установить ее в BIOS.

4
27.01.2020, 21:53

Я бы использовал LABELS в /etc/fstab. Мне нравится такая настройка системы:

/etc/fstab

# <device>        <dir>        <type>        <options>        <dump> <fsck>
LABEL=EFI         /boot        vfat          defaults         0      2
LABEL=SYSTEM      /            ext4          defaults         0      1
LABEL=DATA        /home        ext4          defaults         0      2
LABEL=SWAP        none         swap          defaults         0      0

https://wiki.archlinux.org/index.php/fstab#File_system_labels

Это позволяет создавать клоны, не беспокоясь об изменении UUID.

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

0
27.01.2020, 21:53

Я действительно сделал это сегодня утром! Мой ноутбук, на котором я это делал, использует устаревшую загрузку BIOS на основе MBR -(ThinkPad X201 Tablet ), но большинство этих шагов должны быть одинаковыми для (u )EFI и «устаревших» BIOS. Я делал подобное на Macintosh на основе EFI -в прошлом.

1. Присвойте разделам на новом диске новые идентификаторы UUID, чтобы их можно было различить.

Чтобы обновить UUID нового диска, загрузитесь со старого диска и запустите (для раздела типа ext *):

tune2fs -U `uuidgen` /dev/sdb1

…если /dev/sdb1— это раздел вашего нового диска с -по -по -UUID и вы загружаетесь с /dev/sda.

Если он выдает ошибку, то, вероятно, он попросит вас запустить проверку файловой системы перед переименованием. Запустите команду tune2fs, а затем снова запустите tune2fs.

Для других файловых систем вам нужно выяснить, как вы можете изменить UUID. Вот еще два распространенных:

  • btrfs использует btrfstune -U `uuidgen` /dev/sdb1.
  • Я думаю, что XFS использует xfs_admin -U `uuidgen` /dev/sdb1, но это не так. На 100% уверен в этом, так как я никогда не использовал XFS лично.

Повторите это для всех разделов на новом диске.

2. отредактировать новый диск /etc/fstab.

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

3. Загрузитесь с нового диска (с временным временным решением ), прежде чем продолжить

.

На этом этапе для временной однократной -загрузки на новый диск вы можете указать root=/dev/sdb1(, если /dev/sdb1является корневым разделом вашего нового диска )в параметрах ядра. В GRUB2,это так же просто, как нажать «e» на загрузочной записи Linux и прикрепить ее к концу строки, начинающейся с linux. Если вся ваша установка Linux была на одном разделе (без отдельного домашнего раздела и т. д. ), вы можете сделать это с самого начала (до изменения UUID ).

4. Обновите виртуальный диск с помощью нового файла fstab, чтобы будущие загрузки использовали правильный диск.

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

В любом случае, как пользователь root, вы должны запустить (на Debian и его производных; Я считаю, что команда update-initrdна некоторых других):

update-initramfs -u

4.5 обновить пункты меню GRUB (, возможно, это не обязательно)

Я не уверен, что это действительно требуется, мне стыдно признаться. Я сделал это, потому что «это не повредит», а на моем ноутбуке этого не произошло.

grub-install /dev/sdX

(где /dev/sdX — это диск, на который вы хотите переустановить загрузчик grub. Не указывайте раздел, например, /dev/sdX1 и т. д. — только укажите имя устройства ).

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

Возможно, вам придется изменить приоритет загрузки ваших дисков в настройках BIOS/ (U )EFI, чтобы он автоматически использовал ваш диск, если он по-прежнему вызывает у вас проблемы.

1
27.01.2020, 21:53

Если у вас Mac, вы можете открыть Дисковую утилиту, вставить диск вместе с диском, который вы хотите создать. Щелкните диск, который вы только что вставили (, а не тот, который нужно скопировать ), а затем нажмите кнопку «Восстановить». В раскрывающемся меню выберите диск, который хотите скопировать, затем нажмите кнопку «ОК». Тогда у вас должен быть загрузочный диск!

0
27.01.2020, 21:53

не использовать d иск d отм. Почему, потому что, если у вас есть раздел размером 500 ГБ только с 1 ГБ данных, dd захватит бит за битом все 500 ГБ, когда все, что вам действительно нужно, это 1 ГБ. Это также представляет проблему того, как вы применяете 500 ГБ бит за битом к другому диску или разделу, который не имеет точно такого же размера. Лучший способ, который решает другие ваши проблемы с идентификатором диска и решает проблему загрузки, указывающую на неправильный идентификатор или метку диска,

  1. Скорее всего, вы не сможете правильно захватить данные из корневого /раздела диска операционной системы, работающего в данный момент. Таким образом, у вас будет установлен этот загрузочный золотой диск, а на компьютере будет работать какой-то другой диск с операционной системой Linux.
  2. Установите свой золотой диск так, чтобы он содержал, например,

    • /dev/sdb1 как /boot/efi типа VFAT
    • /dev/sdb2 как SWAP
    • /dev/sdb3 как / введите EXT4
    • mkdir /mygolddisk_sb1
    • mkdir /mygolddisk_sb3
    • mount /dev/sdb1 /mygolddisk_sdb1
    • mount /dev/sdb3 /mygolddisk_sdb3
  3. Теперь как root go и tar каждый раздел, который вам нужен; если размер раздела составляет 1000 ГБ, а у вас только 2 ГБ данных, вы получите только tar-файл размером 2 ГБ. Гораздо легче управлять. Это, однако, не делает его независимым от файловой системы, то есть, если ваш корневой раздел EXT4, и вы распаковываете его на новый раздел диска с чем-то другим, чем исходный тип файловой системы { EXT4 } скорее всего не загрузится. Если, например, исходная корневая файловая система была XFS, то создайте файловую систему на новом диске XFS, если старый корневой раздел диска был EXT2, то создайте новый корневой раздел диска EXT2.

    • cd /mygolddisk_sdb1
    • tar -cf /somewhere_else/mygolddisk_efi_vfat.tar *
    • cd /mygolddisk_sdb3
    • tar -cf /somewhere_else/mygolddisk_root_ext4.tar *
  4. Смонтируйте новый или бывший в употреблении чистый диск; создать таблицу разделов (желательно GPT)

  5. Создать раздел того же типа, из которого был создан раздел mygolddisk_efi_vfat.tar;Теперь вы можете сделать этот раздел любого размера, если он достаточно велик для хранения данных. Сделайте то же самое для раздела SWAP, если хотите или нуждаетесь в этом. То же самое для корневого раздела /, и теперь вы можете сделать его размером с остальную часть этого нового диска. Теперь вы получите что-то вроде

    • /dev/sdc1 as VFAT размером 200 МБ, mygolddisk_efi_vfat.tar— 15 МБ.
    • /dev/sdc2 как SWAP как 2 ГБ, на старом диске мог быть любого размера
    • /dev/sdc3 как EXT4 в качестве оставшегося размера нового диска, может быть больше или меньше, чем корневой раздел, как на золотом диске, но единственным требованием является то, что он больше, чемmygolddisk_root_ext4.tar
    • mkdir /newdisk_Boot_partition
    • mkdir /newdisk_Root_partition
    • mount /dev/sdc1 /newdisk_Boot_partition
    • mount /dev/sdc3 /newdisk_Root_partition
    • cd /newdisk_Boot_partition
    • tar -xf /somewhere_else/mygolddisk_efi_vfat.tar .
    • cd /newdisk_Root_partition
    • tar -xf /somewhere_else/mygolddisk_root_ext4.tar .
  6. К этому моменту вы скопировали только те данные, которые имеют отношение к вашему старому { золотому } диску. И это будет намного быстрее , чем выполнение dd, потому что вы не копируете каждый бит, что ЧРЕЗВЫЧАЙНО расточительно. Также не переносятся проблемы файловой системы со старого диска . Но у вас осталась проблема having copied files referencing disk UUID or label of your old disk which is no longer relevant on some new disk.

  7. Вам просто нужно понять процесс загрузки, будь то EFI или GRUB. Кроме того, если вы используете таблицу разделов MBR в отличие от EFI, то работа с MBR создаст дополнительную сложность, связанную с необходимостью изменить загрузочный сектор диска, чтобы он загружался {не описывая, выходит за рамки}. Но используя EFIи ELILOв качестве примера для простоты, можно было бы сделать следующее

    • редактировать /boot/efi/.../elilo.conf
    • найдите запись, указывающую на идентификатор диска или метку старого диска, и измените ее на новый диск
    • не забудьте /etc/fstabкоторый будет содержать записи указывающие на старый диск, измените их (disk -id, label, uuid )на новый диск
  8. Это было сделано для простой настройки EFI и ELILO, это все, что нужно сделать.Если вы используете GRUB2 и имеете раздел /boot, а также отдельный раздел /boot/efi, вам нужно будет учитывать их конкретно и изменить необходимые файлы GRUB аналогичным образом... просто найдите любые ссылки на старый диск и измените их на новый диск.

  9. Когда вы разбиваете, форматируете и монтируете свой новый диск, именно здесь вы либо узнаете, либо увидите его новую метку (, потому что вы создали его ), или его UUID, или его идентификатор scsi. Скопируйте этот идентификатор UUID или scsi -или метку вместо старого в /newdisk_Root_partition/etc/fstabи в /newdisk_Boot_partition/efi/.../elilo.confили, если используете GRUB, в соответствующие файлы в /newdisk_Boot_partition. Теперь новый диск будет правильно загружаться.

  10. Также знайте, что если вы ссылаетесь на диск по -имени , вы можете избежать этого, выполнив этот маленький трюк :если загрузочный раздел 1, а корневой раздел 3, например, тогда сделайте весь диск ссылки /dev/sda1и /dev/sda3соответственно. Это будет работать только в том случае, если этот диск будет называться sda , а будет , если это единственный и единственный диск, подключенный к компьютеру. Поэтому, когда возникают проблемы с использованием неправильного идентификатора UUID или scsi -, просто измените все на /dev/sda#и отключите все остальные диски, чтобы он загрузился, а затем исправьте все шаг за шагом. Существуют следующие способы ссылки на раздел диска в /etc/fstabи в загрузочных файлах ELILOили GRUB, каждый из которых имеет различные плюсы и минусы:по -имени , по -id , по -метка , по -uuid и по -путь .
1
27.01.2020, 21:53

Теги

Похожие вопросы