Как ответил @ivanivan, очень немногие дистрибутивы требуют компиляции из исходного кода (, и Gentoo автоматизирует этот процесс. )Традиционно основной причиной предпочтения исходного кода была крайняя разница во вкусе Unix и архитектуре, которая существовала между системами Unix (System V против BSD или MIPS против Intel в качестве примера ), но Самая большая причина, по которой мне приходилось компилировать с нуля, — это когда программа, которую я хочу установить, не включена в репозиторий или есть патч, чтобы что-то исправить или добавить определенную функцию.
Даже если программы нет в репозитории, часто есть .deb
или .rpm
пакеты, которые можно загрузить и установить в большинстве дистрибутивов:вот пример для Java. Затем дистрибутив выполнит тяжелую работу по отслеживанию зависимостей (и обновлению их при необходимости. )Основное различие между установкой этих пакетов в Linux и Windows заключается в том, что программа установки, как правило, отделена от пакета в Linux и функционально самостоятельна -в Windows (, даже если они используют систему установки Windows; Установщики MSI напрямую используют установщик Windows.)
Следующая команда делает не совсем то, что вы собираетесь делать
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
Я не не знаю, почему не работает 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.
Создание образа нового диска
_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.
Вот почему я говорю, верните ЭЛИЛО. Никому не нужна великая часть жратвы.