Восстановление образа жесткого диска с помощью gzip выдает ошибку: на устройстве не осталось места

Как ответил @ivanivan, очень немногие дистрибутивы требуют компиляции из исходного кода (, и Gentoo автоматизирует этот процесс. )Традиционно основной причиной предпочтения исходного кода была крайняя разница во вкусе Unix и архитектуре, которая существовала между системами Unix (System V против BSD или MIPS против Intel в качестве примера ), но Самая большая причина, по которой мне приходилось компилировать с нуля, — это когда программа, которую я хочу установить, не включена в репозиторий или есть патч, чтобы что-то исправить или добавить определенную функцию.

Даже если программы нет в репозитории, часто есть .debили .rpmпакеты, которые можно загрузить и установить в большинстве дистрибутивов:вот пример для Java. Затем дистрибутив выполнит тяжелую работу по отслеживанию зависимостей (и обновлению их при необходимости. )Основное различие между установкой этих пакетов в Linux и Windows заключается в том, что программа установки, как правило, отделена от пакета в Linux и функционально самостоятельна -в Windows (, даже если они используют систему установки Windows; Установщики MSI напрямую используют установщик Windows.)

1
11.05.2020, 06:28
2 ответа

Следующая команда делает не совсем то, что вы собираетесь делать

gzip -d /mnt/mydrive/img.gz > /dev/sda

Команда распаковывает файл /mnt/mydrive/img.gzи создает файл с именем img, который является разархивированной копией img.gz. > /dev/sdaне делает ничего полезного, потому что ничего не отправляется на /dev/sdaчерез стандартный вывод.


Это то, что вам нужно сделать, отправить вывод на стандартный вывод (с помощью-c):

gunzip -c /mnt/mydrive/img.gz > /dev/sda

или

gunzip -c /mnt/mydrive/img.gz | pv -s 256G | dd of=/dev/sda bs=4M
3
28.04.2021, 23:15

Я не не знаю, почему не работает gzip, возможно, это как-то связано с 32 -битами. У меня была [более старая] версия winzip для Windows, которая не работала с чем-либо размером более 4 ГБ, но при этом выдавалось всплывающее окно с сообщением, что файл размером более 4 ГБ не может быть выполнен. Я не знаю никого, кто сжимает один файл более десяти гигов, вы делаете 256, я бы никогда не сделал этого с одним файлом, но это мое мнение.

Проблема с использованием ddдля образов жестких дисков заключается в том, что ваш раздел /не заполнен на 100%. Допустим, у него в среднем 10 ГБ, что составляет 5% от 256 ГБ. Когда вы используете ddтаким образом, у вас есть gz-файл размером 256 ГБ, который содержит 5% реальной информации, а остальные 95% — это все пустые [случайные] значения на диске. По этой причине вы не хотите использовать ddтаким образом.Не говоря уже об абсурдно долгом времени до ddи всего диска, особенно дисков TB.

Для загрузочного или efi-раздела размером 1 ГБ или меньше ddнесколько приемлем.

На мой взгляд, единственный раз, когда вы должны использовать dd, это на MBR-диске для сохранения/восстановления первых 512 байтов из MBR . один файл.

Лучшее решение, кроме программного обеспечения, которое делает это за вас, — это использовать tarи понимать загрузчик, каким бы он ни был. Но вам также нужен второй диск с операционной системой Linux, на которой работает компьютер, а затем вы монтируете диск, на котором хотите сохранить файл image. Это принцип

for example let's say the disk to be imaged is partitioned like this,
which is about the minimum required and currently done in RHEL/CentOS 7

/dev/sdc1      /boot         1gb      XFS
/dev/sdc2      /boot/efi   100mb      EFI
/dev/sdc3      /            99tb      XFS

# mount disk to have an image of it saved, let's say it shows up as `/dev/sdc`
# going to save image files of each partition under root folder
# assuming there is enough space to do so there

mkdir /sdc1
mount   /dev/sdc1   /sdc1
cd /sdc1

tar -cf /root/boot.tar *

# boot partition is 1gb total size, but only has 300mb on it so you only have to manage a 300gb boot.tar file

cd /
umount /sdc1
mkdir /sdc2
mount   /dev/sdc2   /sdc2
cd /sdc2

tar -cf /root/efi.tar *

# efi partition is 100mb, but only has 5mb on it, so only a 5mb efi.tar file

cd /
umount /sdc2
mkdir /sdc3
mount   /dev/sdc3   /sdc3
cd /sdc3

tar -cf /root/root.tar   *

# root partition was however big, but only has N gb of actual file system data so you end up with an N gb  root.tar file to have to worry about.

cd /
umount /sdc3
disconnect that disk from computer
# move or rename the boot.tar, efi.tar, and root.tar files as necessary.

Создание образа нового диска

  • смонтировать новый диск
  • отформатируйте разделы до любого размера, который вам нравится, размер должен быть больше, чем соответствующий файл tar, что должно быть очевидно
  • **требование *заключается в том, что если root.tar находился в файловой системе XFS, его необходимо распаковать в файловую систему XFS; вы не можете решить, хотите ли вы сделать раздел вашего нового диска чем-то другим, например EXT4 или BTRFS, и распаковать и распаковать этот файл root.tar, который имел файловую систему xfs для этой операционной системы Linux. Я пробовал, не загружается. Поэтому назовите корневой и загрузочный файлы.tar, например, _xfs, чтобы вы запомнили.
  • просто замените tar -cfна tar -xf, чтобы иметь метод восстановления
  • Теперь у вас остался механизм загрузки, не зависящий от операционной системы.

Поскольку процесс загрузки может различаться между Linux, efi и MBR, grub, grub2 и ELILO, лучшее, что я могу вам сказать на данный момент, это то, что вам нужно понимать, какой загрузчик вы используете, и как переустановите именно это и перенастройте его для нового диска.Иногда это можно сделать, загрузив установочный DVD-диск дистрибутива Linux и позволив ему восстановить загрузочный раздел , но опять же, это зависит от дистрибутива Linux.

Именно здесь лучше всего найти программное обеспечение для клонирования, такое как macrium или aomei.

Если вы решите использовать этот метод ручного клонирования через tar, имейте в виду, что новый диск не является старым диском, поэтому все ссылки на старый диск необходимо изменить на новый диск. В частности, UUID в /etc/fstab, однако вы можете облегчить это, выполнив монтирование по -имени , где fstab имеет mount /dev/sda#, и это будет работать при условии, что новый диск является единственным диск присутствует и отображается как sda. Трудная часть — найти работающий процесс для исправления grub2 или любого другого загрузчика, который вы используете. Во времена ELILO это было великолепно и очень просто, достаточно изменить одну строчку в файле elilo.conf.

Вот почему я говорю, верните ЭЛИЛО. Никому не нужна великая часть жратвы.

0
28.04.2021, 23:15

Теги

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