LINUX.ORG.RU

создание и запись образа на HDD/SSD

 , , ,


0

4

есть в ноутбуке 120Гб ССД и есть внешний 1Тб ХДД. Хочу на внешнем ХДД хранить несколько образов снятых с ССД, с разными установленными ОС (разными настройками).

Через ДД образы создаются нормально, но они больше чем реально используемое пространство (полная копия диска). А это пустая трата места и времени. Лет двадцать назад неплохо с этой задачей акронисТруИмэдж справлялся.

как правильно это организовать в линухе?



Последнее исправление: Dimez (всего исправлений: 1)

fstrim высвобождает место неиспользуемое файловой системой.

Смонтировать образ

mount -o loop my_image1.raw /mnt/my_image1

высвободить неиспользуемые блоки

fstrim -v /mnt/my_image1

размонтировать образ

mount /mnt/my_image1

посмотреть сколько места стал занимать файл

du -h my_image1.raw
No ★★
()
Ответ на: комментарий от No

Образ диска с таблицей разделов ты так не смонтируешь, там надо опцию для losetup чтобы разделы создались в /dev и монтировать их.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от mamina_radost

Clonezilla? Или это разные пректы про одно и тоже

Некоторые по ошибке называют это «GUI для Clonezilla». Их можно понять — хоть это разные проекты, но очень схожие:

Rescuezilla — это user friendly графическое приложение с открытым исходным кодом для создания образов дисков, полностью совместимое с бекап-образами Clonezilla — отраслевым стандартом, которому доверяют десятки миллионов ... Rescuezilla была ответвлена ​​от Redo Backup and Recovery (теперь называется Redo Rescue), поскольку она была заброшена в течение 7 лет. Rescuezilla — это больше, чем просто тривиальный форк: она была тщательно перестроена с нуля, чтобы быть полностью совместимой со стандартом отрасли Clonezilla.

posixbit ★★★
()
Последнее исправление: posixbit (всего исправлений: 2)

Можно через tar. например я делал так

tar -cvpzf backup.tar.gz  --one-file-system /
Но так диск руками размечать приходится и загрузчик устанавливать тоже руками.

vbcnthfkmnth123 ★★★★★
()
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 1)

Никак не совет, но в качестве эксперимента. Попробуй в хранилище сделать btrfs со сжатием и/или дедупликацией. И позаписывай свои тестовые образы ос (такие какие они и есть) в это хранилище. Потом проверь размер свободного места.

justAmoment ★★★★★
()
Ответ на: комментарий от TPPPbIHDELj

не, там еще шин10 будет. резко оффтопну, но.

шиндовс чудесно умеет грузиться из родных vhdx. Образ (прямо на живую, бесплатно, без регистрации без смс) снимается sysinternals disk2vhd.

Этот vhd(x) можно скормить штатному bootbgr от шиндовса, или хипстерскому ventoy. Ничего разворачивать/клонировать/копировать - не нужно.

anonymous
()
Ответ на: комментарий от vbcnthfkmnth123

И обосрёшься с xattrs и acl, как минимум.

https://wiki.archlinux.org/title/Full_system_backup_with_tar#Backup_script

https://bbs.archlinux.org/viewtopic.php?id=146269

Если очень хочется именно в тар, то можно с bsdtar (см. ссылку выше), но «dd | gzip» проще и надёжнее

anonymous
()
Ответ на: комментарий от anonymous

Если очень хочется именно в тар, то можно с bsdtar

Ссылки не очень качественные. GNU tar по умолчанию включает только атрибуты user.*, остальные можно включить ключом --xattrs-include='*'. Поведение не уникально для tar, getfattr тебе тоже не покажет «системные» атрибуты без явно заданной маски. Почему так? Пространства имён, кроме user, не считаются переносимыми. Так что тут довольно спорно, поведение какого варианта tar правильнее.

anonymous
()
Ответ на: комментарий от x905

Файловая система передает discard блочному устройству, а блочное устройство контроллеру. Если блочное устройство представляет не контроллер, а файл, то discard будет делать «дыры» в файле.

# dd if=/dev/urandom bs=1M count=128 of=/tmp/rnd.raw
# du -h /tmp/rnd.raw
128M    /tmp/rnd.raw
# losetup --find --show /tmp/rnd.raw
/dev/loop0
# blkdiscard /dev/loop0
# du -h /tmp/rnd.raw
0       /tmp/rnd.raw
No ★★
()
Ответ на: комментарий от x905

а это будет ли применительно к задаче ТС ? ведь если он снимет образ диска через dd, то там будет файловая система разделов

Если образе будет таблица разделов, то вместо mount -o loop надо будет использовать losetup --partscan и затем монтировать найденные разделы.

как поведет себя blkdiscard?

Удалит все данные на блочном устройстве.

No ★★
()
Ответ на: комментарий от No

надо будет использовать losetup –partscan

так и делаю. Т.к. весь диск в образ. Отсюда топик и возник – много места занимает, много времени тратится. Шиндовс не хочет работать, иногда, после записи образа обратно на ССД.

TPPPbIHDELj
() автор топика
Ответ на: комментарий от TPPPbIHDELj

Если диск с которого делается образ поддерживает trim, то можно выполнить trim перед копированием образа, и после копирования освобоить неиспользуемые блоки в файле образа командой

fallocate --dig-holes my_image1.raw

Если нужно хранить несколько версий образа и файловая система, где хранятся образы, поддерживает reflink, то можно скопировать старый файл образа командой

cp --reflink=always my_image1.raw my_image1--250408.raw

и создать новый образ командой

rsync -v --info=progress2 --copy-devices --checksum --inplace /dev/sdX my_image1.raw

в этом случае место на диске будет расходоваться только для изменившихся блоков.

При копировании образа диска все разделы этого диска должны быть отмонтированы.

No ★★
()
Ответ на: комментарий от greenman

Вчера приехал из коммандировки, только сегодня руки до компа дошли.

find /usr/bin /usr/lib -perm /4000 -user root
/usr/bin/doas
/usr/bin/expiry
/usr/bin/newgidmap
/usr/bin/nvidia-modprobe
/usr/bin/chfn
/usr/bin/crontab
/usr/bin/su
/usr/bin/passwd
/usr/bin/traceroute
/usr/bin/newgrp
/usr/bin/pkexec
/usr/bin/chage
/usr/bin/newuidmap
/usr/bin/chsh
/usr/lib/ssh/ssh-keysign
/usr/lib/polkit-1/polkit-agent-helper-1
/usr/lib/xf86-video-intel/xf86-video-intel-backlight-helper
/usr/lib/xorg-server/Xorg.wrap
/usr/lib/dbus/dbus-daemon-launch-helper
/usr/lib/pppd/2.4.9/pppoe.so
/usr/lib/pppd/2.4.9/pppoatm.so

vbcnthfkmnth123 ★★★★★
()
Ответ на: комментарий от anonymous

минимум, ping от юзера поломался

Вранье.

$ ping -a linux.org.ru
PING linux.org.ru (178.248.233.6) 56(84) bytes of data.
64 bytes from 178.248.233.6 (178.248.233.6): icmp_seq=1 ttl=56 time=22.9 ms
64 bytes from 178.248.233.6 (178.248.233.6): icmp_seq=2 ttl=56 time=22.7 ms
64 bytes from 178.248.233.6 (178.248.233.6): icmp_seq=3 ttl=56 time=22.9 ms
64 bytes from 178.248.233.6 (178.248.233.6): icmp_seq=4 ttl=56 time=22.8 ms
64 bytes from 178.248.233.6 (178.248.233.6): icmp_seq=5 ttl=56 time=22.7 ms
64 bytes from 178.248.233.6 (178.248.233.6): icmp_seq=6 ttl=56 time=22.7 ms
^C
--- linux.org.ru ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5008ms
rtt min/avg/max/mdev = 22.655/22.778/22.885/0.085 ms

если не обновлялся пакет iputils после развёртывания бекапа

Не обновлялся.

vbcnthfkmnth123 ★★★★★
()
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 1)
Ответ на: комментарий от vbcnthfkmnth123

Тогда одно из двух, или ping у тебя таки с suid-битом (что в современных дистрибутивах редкость, так что такой архив в любом случае вещь не универсальная, даже если не брать в расчет всякие selinux и т.д.), или ты врёшь

anonymous
()
Ответ на: комментарий от anonymous

что в современных дистрибутивах редкость

У меня CRUX, что там через жопу в современных дистрибутивах сделали я без понятия.

vbcnthfkmnth123 ★★★★★
()
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 1)
Ответ на: комментарий от anonymous

И в арче так. Сейчас как-то по другому с ping решается.

$ find /usr/bin /usr/lib -perm /4000 -user root
/usr/bin/newgrp
/usr/bin/sg
/usr/bin/gpasswd
/usr/bin/mount
/usr/bin/chage
/usr/bin/passwd
/usr/bin/sudo
/usr/bin/pkexec
/usr/bin/fusermount
/usr/bin/ksu
/usr/bin/unix_chkpwd
/usr/bin/chfn
/usr/bin/mount.cifs
/usr/bin/su
/usr/bin/expiry
/usr/bin/fusermount3
/usr/bin/umount
/usr/bin/chsh
/usr/lib/qemu/qemu-bridge-helper
/usr/lib/chromium/chrome-sandbox
/usr/lib/Xorg.wrap
/usr/lib/dbus-daemon-launch-helper
/usr/lib/polkit-1/polkit-agent-helper-1
/usr/lib/ssh/ssh-keysign
/usr/lib/libgtop/libgtop_server2

https://bbs.archlinux.org/viewtopic.php?pid=1921172

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)