Как создать небольшой образ диска с большими разделами

Существует несколько вещей, которые можно установить под Параметрами настройки системы (Внешний вид и поведение рабочей области)-> Приложения По умолчанию, такие как терминальное и приложение браузера для использования.

Относительно вещей, открытых из файлового менеджера KDE, дельфина, я полагаю, что это - contolled от Параметров настройки системы (Общий Внешний вид и поведение)-> Ассоциации файлов. В то время как я использую fedora+kde, я на самом деле не использую дельфина, таким образом, я не могу сказать наверняка, который является правильным WRT, например, pdfs, но приложение->, PDF выглядит многообещающим (существует поиск там также).

Вы будете, вероятно, также интересоваться этой функцией дельфина.

7
17.07.2015, 00:56
4 ответа

Во-первых, запись разреженного образа на диск не приведет к чему-либо, кроме всего размера этого файла образа - дыр и всего - покрывающего диск. Это связано с тем, что обработка разреженных файлов - это качество файловой системы, а необработанное устройство (такое, как то, на которое вы записываете изображение) еще не имеет такой вещи . Разреженный файл можно сохранить безопасно и надежно на носителе, управляемом файловой системой, которая понимает разреженные файлы (например, устройство ext4) , но как только вы напишите, это охватит все, что вы хотите. Итак, что вы должны сделать, это либо:

  1. Просто сохраните его в fs, который понимает разреженные файлы, пока вы не будете готовы его записать.

  2. Сделайте его двухуровневым ...

    • То есть запишите основное изображение в файл, создайте другое родительское изображение с fs, которое распознает разреженные файлы, а затем скопируйте свое изображение к родительскому изображению и ...

    • Когда придет время писать изображение, сначала напишите свое родительское изображение, а затем напишите свое основное изображение.

Вот как сделать 2:

  • Создать разреженный файл размером 1 ГБ ...

     dd bs = 1kx1k seek = 1k of = img 
  • Записать два 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  ./ 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 
  • Это обрезает файл 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 

     181M -rw-r - r-- 1 mikeserv mikeserv 201M 16 июля 22:01 img 
     
4
27.01.2020, 20:17

Самый простой способ сделать это - создать резервный файл в виде разреженного файла; то есть сделать его 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-накопителе останутся старые данные - возможно, это проблема безопасности.

6
27.01.2020, 20:17

Надеюсь, я правильно понял вопрос:

Чтобы сжать файловую систему и раздел. Используйте gparted .

-1
27.01.2020, 20:17

Вы хотите создать этот образ с объемом памяти 800 МБ, чтобы его можно было скопировать на SD-карты. Но не желая тратить место при сохранении изображения. Если да, то могу предложить сжатие, например bzip . Однако это будет зависеть от того, будут ли неиспользуемые блоки обнулены.

0
27.01.2020, 20:17

Теги

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