Существует несколько вещей, которые можно установить под Параметрами настройки системы (Внешний вид и поведение рабочей области)-> Приложения По умолчанию, такие как терминальное и приложение браузера для использования.
Относительно вещей, открытых из файлового менеджера KDE, дельфина, я полагаю, что это - contolled от Параметров настройки системы (Общий Внешний вид и поведение)-> Ассоциации файлов. В то время как я использую fedora+kde, я на самом деле не использую дельфина, таким образом, я не могу сказать наверняка, который является правильным WRT, например, pdfs, но приложение->, PDF выглядит многообещающим (существует поиск там также).
Вы будете, вероятно, также интересоваться этой функцией дельфина.
Во-первых, запись разреженного образа на диск не приведет к чему-либо, кроме всего размера этого файла образа - дыр и всего - покрывающего диск. Это связано с тем, что обработка разреженных файлов - это качество файловой системы, а необработанное устройство (такое, как то, на которое вы записываете изображение) еще не имеет такой вещи . Разреженный файл можно сохранить безопасно и надежно на носителе, управляемом файловой системой, которая понимает разреженные файлы (например, устройство ext4) , но как только вы напишите, это охватит все, что вы хотите. Итак, что вы должны сделать, это либо:
Просто сохраните его в fs, который понимает разреженные файлы, пока вы не будете готовы его записать.
Сделайте его двухуровневым ...
То есть запишите основное изображение в файл, создайте другое родительское изображение с fs, которое распознает разреженные файлы, а затем скопируйте свое изображение к родительскому изображению и ...
Когда придет время писать изображение, сначала напишите свое родительское изображение, а затем напишите свое основное изображение.
Вот как сделать 2:
Создать разреженный файл размером 1 ГБ ...
dd bs = 1kx1k seek = 1k of = img dev / null
Записать два ext4
разделяет свою таблицу разделов: 1 200 МБ, 2 800 МБ ...
printf '% b \ n \ n \ n \ n' n '+ 200M \ nn \ n' 'w \ n \ c '| fdisk img
Создайте две ext4
файловые системы на -P
созданном устройстве цикла и поместите копию второй на первое ...
sudo sh -c '
for p в "$ (losetup --show -Pf img) p" * ### цикл for будет повторять
do mkfs.ext4 "$ p "### через fdisks два раздела
mkdir -p ./mnt/"${p##*/}" ### и mkfs, затем смонтируйте каждый
mount "$ p". / mnt / "$ {p ## * /}" ### в каталогах, созданных для них
готово; синхронизация; cd ./mnt/*/ ### затем мы копируем разреженное изображение
cp --sparse = always "$ p" ./part2 ### part2 на part1
dd bs = 1kx1k count = 175 dev / zero> ./ zero_fill ### заполнить часть 1 с нулями
синхронизировать; CD ..; ls -Rhls. ### sync и список содержимого
umount * /; losetup -d "$ {p% p *}" ### last umount, уничтожить
rm -rf loop * p [12] / '### loop devs и смонтировать каталоги
mke2fs 1.42.12 (29 августа 2014 г.)
Отказ от блоков устройства: готово
Создание файловой системы с 204800 блоками по 1 КБ и 51200 индексными дескрипторами
UUID файловой системы: 2f8ae02f-4422-4456- 9a8b-8056a40fab32
Резервные копии суперблоков, хранящиеся в блоках:
8193, 24577, 40961, 57345, 73729
Размещение групповых таблиц: выполнено
Запись inode tables: done
Создание журнала (4096 блоков): done
Запись суперблоков и информации учета файловой системы: выполнено
mke2fs 1.42.12 (29 августа 2014 г.)
Отказ от блоков устройства: готово
Создание файловой системы с 210688 блоками 4k и 52752 инодами
UUID файловой системы: fa14171c-f591-4067-a39a-e5d0dac1b806
Резервные копии суперблоков, хранящиеся на блоки:
32768, 98304, 163840
Распределение групповых таблиц: выполнено
Запись таблиц inode: выполнено
Создание журнала (4096 блоков): выполнено
Запись суперблоков и информации учета файловой системы: выполнено
{{ 1}} 175 + 0 записей из
175 + 0 записей из
183500800 байт (184 МБ) скопировано, 0,365576 с, 502 МБ / с
./: {{1} } всего 1.0K
1.0K drwxr-xr-x 3 root root 1.0K 16 июля 20:49 loop0p1
0 drwxr-xr-x 2 root root 40 16 июля 20:42 loop0p2 {{ 1}}
./ loop0p1:
всего 176M
12K drwx ------ 2 root root 12K 16 июля 20:49 потеряно + найдено
79K -rw-r ----- 1 root root 823M 16 июля 20:49 part2
176M -rw-r - r-- 1 root root 175M 16 июля 20:49 zero_fill
./ loop0p1 / lost + найдено:
всего 0
./ loop0p2:
всего 0
Вот много результатов - в основном из mkfs.ext4
- но обратите внимание на биты ls
внизу. ls -s
покажет фактический -s
ize файла на диске - и он всегда отображается в первом столбце.
Теперь мы можем уменьшить наш образ только до первого раздела ...
fdisk -l img
Disk img: 1 ГиБ, 1073741824 байта, 2097152 сектора
Единицы : секторы размером 1 * 512 = 512 байт
Размер сектора (логический / физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный / оптимальный): 512 байт / 512 байт {{1 }} Тип метки диска: dos
Идентификатор диска: 0xc455ed35
Размер конечных секторов начала загрузки устройства Тип идентификатора
img1 2048 411647 409600 200M 83 Linux
img2 411648 2097151 1685504 823M 83 Linux
Там fdisk
сообщает нам, что в первом разделе img
...
есть 411647 +1 512 байтовых секторов. ] dd seek = 411648 of = img dev / null
Это обрезает файл img
до его первого раздела. Видите?
ls -hls img
181M -rw-r - r-- 1 mikeserv mikeserv 201M 16 июля 21:37 img
... но мы все еще можно смонтировать этот раздел ...
sudo mount "$ (sudo losetup -Pf --show img) p" * 1 ./mnt
… и вот его содержимое .. .
ls -hls./ mnt
всего 176M
12K drwx ------ 2 root root 12K 16 июля 21:34 потеряно + найдено
79K -rw-r --- - 1 root root 823M 16 июля 21:34 part2
176M -rw-r - r-- 1 root root 175M 16 июля 21:34 zero_fill
И мы может добавить сохраненный образ второго раздела к первому ...
sudo sh -c '
dd seek = 411648 if =. / mnt / part2 of = img
umount ./ mnt; losetup -D
mount "$ (losetup -Pf --show img) p "* 2 ./mnt
ls ./mnt; umount ./mnt; losetup -D '
1685504 + 0 записей в
1685504 + 0 записей из
862978048 байт (863 МБ) скопировано, 1,96805 с, 438 МБ / с
потеряно + найдено
Теперь, когда увеличился наш img
файл: он больше не разреженный ...
ls -hls img
1004M -rw-r - r-- 1 mikeserv mikeserv 1.0G 16 июля 21:58 img {{ 1}}
... но удалить это во второй раз так же просто, как и в первый раз, конечно ...
dd seek = 411648 of = img dev / null
ls -hls img
181M -rw-r - r-- 1 mikeserv mikeserv 201M 16 июля 22:01 img
Самый простой способ сделать это - создать резервный файл в виде разреженного файла; то есть сделать его 1 ГБ с помощью truncate -s 1 ГБ диска.img
вместо dd if = / dev / zero bs = 1048576 count = 1024 of = disk.img
(или что-то еще). Хорошо, что truncate
также намного быстрее.
Если вы выполните ls -l
для файла, он будет отображаться как 1 ГБ, но это только его видимый размер. du disk.img
даст фактический размер.
(Примечание - вам необходимо разместить свой образ в файловой системе, которая поддерживает разреженные файлы. Все обычные Unix-файлы подходят. Ext2 / 3/4 все подходят. FAT32 не поддерживает. HFS + также не поддерживает.)
ПРИМЕЧАНИЕ. Разреженные файлы, по логике, имеют полный размер. Просто никогда не записанные разделы физически не хранятся на диске. По большей части не сохраненная часть скрыта от программ. Однако несколько утилит поддерживают его. (Например, dd conv = sparse
, cp --sparse = auto / always
и т. Д.). Настоящий USB-накопитель не может быть редким. И если вы используете dd conv = sparse
для его записи, это, вероятно, будет намного быстрее, но вы оставите все данные, которые были там раньше, вместо ожидаемых блоков, заполненных NUL (0x00). Должно работать нормально (в качестве свободного места), но на USB-накопителе останутся старые данные - возможно, это проблема безопасности.
Надеюсь, я правильно понял вопрос:
Чтобы сжать файловую систему и раздел. Используйте gparted
.
Вы хотите создать этот образ с объемом памяти 800 МБ, чтобы его можно было скопировать на SD-карты. Но не желая тратить место при сохранении изображения. Если да, то могу предложить сжатие, например bzip
. Однако это будет зависеть от того, будут ли неиспользуемые блоки обнулены.