Следует иметь в виду это части /etc
требуются, чтобы быть читаемым даже непривилегированными пользователями. Если существуют вещи в /etc
это не должно быть читаемо, но, у Вас есть большие проблемы, и в минимуме должен работать, полномочия Вашего распределения проверяют/устраняют программу.
Тюрьма является самым легким способом настроить драконовские ограничения. Существуют другие пути, такие как установка SElinux и принимают меры, чтобы у пользователя был очень ограниченный контекст защиты.
Это зависит от того, является ли образ диска полным образом диска или просто разделом.
Если диск будет в хорошем рабочем состоянии, то Вы получите лучшее сжатие при промывке вакуума на диске с нулями. Если диск перестал работать, пропустите этот шаг.
При обработке изображений всего диска затем, Вы захотите промыть каждый из разделов на диске.
Внимание: Будьте осторожны, Вы хотите установить of
в файл в смонтированном разделе, НЕ САМОМ РАЗДЕЛЕ!
mkdir image_source
sudo mount /dev/sda1 image_source
dd if=/dev/zero of=image_source/wash.tmp bs=4M
rm image_source/wash.tmp
sudo umount image_source
mkdir image
sudo dd if=/dev/sda1 of=image/sda1_backup.img bs=4M
Где sda
название устройства, и 1
число раздела. Корректируйтесь соответственно для Вашей системы, если Вы хотите отобразить другое устройство или раздел.
mkdir image
sudo dd if=/dev/sda of=image/sda_backup.img bs=4M
Где sda
название устройства. Корректируйтесь соответственно для Вашей системы, если Вы хотите отобразить другое устройство.
Заставьте "squashfs" отобразить, который содержит полное несжатое изображение.
sudo apt-get install squashfs-tools
mksquashfs image squash.img
Чтобы постараться не делать отдельный временный файл полным размером диска, можно передать потоком в изображение squashfs.
mkdir empty-dir
mksquashfs empty-dir squash.img -p 'sda_backup.img f 444 root root dd if=/dev/sda bs=4M'
Сначала смонтируйте изображение squashfs, затем смонтируйте изображение раздела, сохраненное в смонтированном изображении squashfs.
mkdir squash_mount
sudo mount squash.img squash_mount
Теперь Вам смонтировали сжатое изображение, монтируете само изображение (который является в изображении squashfs),
mkdir compressed_image
sudo mount squash_mount/sda1_backup.img compressed_image
Теперь Ваше изображение смонтировано под compressed_image
.
Править: Если Вы хотели просто восстановить образ диска на раздел в этой точке (вместо того, чтобы монтировать его для просматривания/читавшего содержания), просто dd
изображение в squash_mount/sda1_backup.img
на место назначения вместо выполнения mount
.
Это требует, чтобы Вы для использования пакета, названного kpartx. kpartx, позволили Вам монтировать отдельные разделы в полном образе диска.
sudo apt-get install kpartx
Во-первых, смонтируйте свой раздавленный раздел, который содержит полный образ диска
mkdir compressed_image
sudo mount squash.img compressed_image
Теперь необходимо создать устройства для каждого из разделов в полном образе диска:
sudo kpartx -a compressed_image/sda_backup.img
Это создаст устройства для разделов в полном образе диска в /dev/mapper/loopNpP
где N является номером, присвоенным для устройства закольцовывания, и P является числом раздела. Например: /dev/mapper/loop0p1
.
Теперь у Вас есть способ смонтировать отдельные разделы в полном образе диска:
mkdir fulldisk_part1
sudo mount /dev/mapper/loop0p1 fulldisk_part1
Не совсем. Вы не можете действительно искать на определенный блок в сжатом файле, не распаковывая все это сначала, которое мешает использовать сжатое изображение в качестве блочного устройства.
Вы могли использовать что-то как dump
и restore
(или tar
, действительно), все из которых используют формат потоковой передачи..., таким образом, можно получить доступ к invidividual файлам путем эффективного сканирования через несжатый поток. Это означает, ли файл, который Вы хотите, в конце сжатого архива, у Вас может быть долгое время для ожидания, но это не требует, чтобы Вы на самом деле распаковали все на диск.
Используя tar
поскольку резервные копии могут казаться немного старомодными, но Вы получаете большую гибкость.
Если изображение является только для чтения, Вы также можете использовать nbdkit (man page) и его xz плагин (xz должен обеспечивать лучшее сжатие и случайное время доступа, чем gzip).
dd if=/dev/sda1 bs=16M | xz -9 --block-size=16MiB - > sda1.img.xz
A -объём блока
должен обеспечивать хорошую производительность при случайном доступе.
Примечание: Вы можете использовать альтернативные программы сжатия xz, такие как pixz , которые обеспечивают параллельное сжатие, просто убедитесь, что он разбивает вывод на несколько маленьких блоков, в противном случае nbdkit должен распаковывать большое количество данных. Например, по состоянию на сентябрь 2015 г. pxz этого не поддерживает.
nbdkit --no-fork --user nobody --group nobody -i 127.0.0.1 \
xz file=sda1.img.xz
nbd-client 127.0.0.1 10809 /dev/nbd0 -nofork
mount -o ro /dev/nbd0 sda1
umount /dev/nbd0
nbd-client -d /dev/nbd0
Остановите nbdkit, нажав Ctrl+C (или с помощью kill).
.Этот ответ дополняет ответ Кристиана Сьюпиту . Если вы используете сжатие xz с разумным размером блока, вы можете получить доступ к образу диска, используя guestfish или другие инструменты libguestfs, как например:
nbdkit xz file=disk.img.xz --run 'guestfish --format=raw -a $nbd -i'
UPDATE: Так как xz больше не является плагином, а стал фильтром, команда теперь:
nbdkit file disk.img.xz --filter xz --run 'guestfish --format=raw -a $nbd -i'
Еще одно дополнение к ответу Кристиана Чупиту:
Если вы используете nbdkit
для монтирования полного образа диска(вместо образа раздела ),вам может потребоваться указать размер блока (размер сектора диска )при подключении к серверу NBD, так как по умолчанию он равен 1024
байт. Чтобы использовать 512
байт вместо:
nbd-client 127.0.0.1 /dev/nbd0 -b 512 -n
После этого диск будет отображаться как /dev/nbd0
, и вы сможете просмотреть таблицу разделов, используя fdisk -l
. Однако разделы еще не монтируются -. Используйтеkpartx
(из ответа doug65536)для создания устройств для разделов, например.:
kpartx -arv /dev/nbd0
Наконец, разделы появятся в /dev/mapper/
, и вы сможете их монтировать как обычно. Обязательно используйте режим только для чтения (-o ro
), так как плагин xz поддерживает только чтение :
mount -o ro /dev/mapper/nbd0p3 /mnt
-p
или-pf
флаги для передачи его псевдофайл. Псевдо файл может использоваться для вещей как создание узлов устройства, которые Вы не можете иначе обойтись без корня (полезный для создания изображений как часть процесса сборки) или для потоковой передачи вывода некоторой команды в изображение. Один из примеров дан в документах (/usr/share/doc/squashfs-tools/examples/pseudo-file.example
на Debian/Ubuntu),input f 444 root root dd if=/dev/sda1 bs=1024 count=10
скопировать первый 10K с образа диска в файл, названный "входом" в изображении squashfs. большое спасибо – Brian Campbell 22.07.2014, 06:45