GNU/Linux >> Znalost Linux >  >> Linux

vytvořte prázdný img pomocí dd tak, aby jeho sektory byly 4096 bajtů spíše než 512

Nejde to udělat tak, jak popisuješ. Velikost sektoru je vlastnost blokového zařízení, kterou soubory ve své podstatě nemají. Soubor je pouze posloupnost určitého počtu bajtů, způsob jejich uložení je implementační detail...

Pokud tedy chcete konkrétní velikost sektoru, potřebujete blokové zařízení. A Linux nabízí smyčková zařízení právě pro tento účel, takže použijte losetup k vytvoření souborem podporovaného virtuálního blokového zařízení s určitou velikostí sektoru.

Testovací soubor:

# dd if=/dev/zero of=empty4k.img bs=4096 count=8192

Zařízení s pravidelnou smyčkou:

# losetup --find --show empty4k.img 
/dev/loop0
# fdisk -l /dev/loop0
Disk /dev/loop0: 32 MiB, 33554432 bytes, 65536 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Zařízení smyčky 4096 bajtů sektorů:

# losetup --find --show --sector-size=4096 empty4k.img 
/dev/loop1
# fdisk -l /dev/loop1
Disk /dev/loop1: 32 MiB, 33554432 bytes, 8192 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

V obou případech je soubor zcela identický, vlastnost velikosti sektoru poskytuje vrstva zařízení blokové smyčky.


bs přiděleno dd pouze říká, jak velká by měla být vyrovnávací paměť při vytváření souboru. Nakonec se soubor skládá pouze z nulových bajtů, nejsou zde žádné informace o zarovnání.

Musíte použít specifický parametr fdisk , což je -b podle man -stránka z fdisk(8) :

  -b, --sector-size sectorsize
          Specify  the  sector  size  of  the  disk.   Valid values are 512,    1024, 2048, and 4096.  (Recent kernels know the sector size.  Use this option only on old kernels or to override the kernel's
          ideas.)  Since util-linux-2.17, fdisk differentiates between logical and physical sector size.  This option changes both sector sizes to sectorsize.

Linux
  1. Nahradit slovo nebo číslo ve větě, která je menší než 8, pomocí Awk nebo Sed?

  2. Jak vytvořit Cron Job, která automaticky odstraní soubory, které jsou starší než 30 dní?

  3. Vytvořte nový prázdný adresářový strom z existujícího stromu se soubory

  1. Jak mohu vytvořit soubor s určitou velikostí z příkazového řádku?

  2. vytvářet prázdné soubory se stejnou adresářovou strukturou jako referenční adresář

  3. Velikost složky s du

  1. Správa oddílů v Linuxu pomocí fdisk

  2. Zjištění velikosti sektoru oddílu?

  3. Proč se můj název hostitele v /etc/hosts zobrazuje s adresou 127.0.1.1 namísto 127.0.0.1?