Portál AbcLinuxu, 13. května 2025 23:39

Dotaz: Rozdelenie disku s 4096 B sektormi

24.8.2012 07:49 psholty2 | skóre: 7 | blog: char
Rozdelenie disku s 4096 B sektormi
Přečteno: 802×
Odpovědět | Admin
Kupil som novy 1TB disk s 4096 B sektormi a chcem ho spravne rozdelit, cital som ze nespravne rozdelenie moze mat vplyv na vykon. Skusal som 2 verzie fdisku a najnovsi gparted, obcas to davalo divne cisla, obcas to hlasilo nejake warningy, potreboval by som vediet ci som ho dobre rozdelil pripadne ako ho rozdelit spravne.

fdisk (util-linux-ng 2.17.2) vypisuje toto:
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000bf663

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2096128   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2             262        2872    20969472   83  Linux
/dev/sdb3            2872        5483    20971520   83  Linux
/dev/sdb4            5483      121602   932723712   83  Linux
Ked stlacim "u" (Changing display/entry units to sectors) a "c" (DOS Compatibility flag is not set) vypise:
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000bf663

   Device Boot      Start         End      Blocks   Id  System
   /dev/sdb1            2048     4194303     2096128   83  Linux
   /dev/sdb2         4194304    46133247    20969472   83  Linux
   /dev/sdb3        46133248    88076287    20971520   83  Linux
   /dev/sdb4        88076288  1953523711   932723712   83  Linux

Este ten isty vypis ked spustim fdisk s prepinacom -b 4096:
Note: sector size is 4096 (not 512)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 15200 cylinders
Units = cylinders of 16065 * 4096 = 65802240 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000bf663

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262    16769024   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2             262        2872   167755776   83  Linux
/dev/sdb3            2872        5483   167772160   83  Linux
/dev/sdb4            5483      121602  3166822400   83  Linux
To iste po "u" a "c":
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 15200 cylinders, total 244190646 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
Disk identifier: 0x000bf663

   Device Boot      Start         End      Blocks   Id  System
   /dev/sdb1            2048     4194303    16769024   83  Linux
   /dev/sdb2         4194304    46133247   167755776   83  Linux
   /dev/sdb3        46133248    88076287   167772160   83  Linux
   /dev/sdb4        88076288  1953523711  3166822400   83  Linux
Teraz novsia verzia fdisku (util-linux 2.20.1)
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000bf663

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     4194303     2096128   83  Linux
/dev/sda2         4194304    46133247    20969472   83  Linux
/dev/sda3        46133248    88076287    20971520   83  Linux
/dev/sda4        88076288  1953523711   932723712   83  Linux

Command (m for help): u
Changing display/entry units to cylinders (DEPRECATED!)

Command (m for help): c
DOS Compatibility flag is set (DEPRECATED!)

Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000bf663

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         262     2096128   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             262        2872    20969472   83  Linux
/dev/sda3            2872        5483    20971520   83  Linux
/dev/sda4            5483      121602   932723712   83  Linux
Teraz fdisk s prarametrom -b 4096:
Note: sector size is 4096 (not 512)

Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 15200 cylinders, total 244190646 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
Disk identifier: 0x000bf663

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     4194303    16769024   83  Linux
/dev/sda2         4194304    46133247   167755776   83  Linux
/dev/sda3        46133248    88076287   167772160   83  Linux
/dev/sda4        88076288  1953523711  3166822400   83  Linux

Command (m for help): c
DOS Compatibility flag is set (DEPRECATED!)

Command (m for help): u
Changing display/entry units to cylinders (DEPRECATED!)

Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 15200 cylinders
Units = cylinders of 16065 * 4096 = 65802240 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000bf663

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         262    16769024   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             262        2872   167755776   83  Linux
/dev/sda3            2872        5483   167772160   83  Linux
/dev/sda4            5483      121602  3166822400   83  Linux
Ak to pomoze na disku su napisane tieto udaje:

Cyl 16383, H 16, S 63, LBA 1953525168 sectors

Particie chcem rozdelit priblizne na 2, 20, 20 a zvysok s tym ze na zaciatku by som chcel 1MB nechat na bootloader grub ako sa v doporuceni pise.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.8.2012 08:01 ubuntak
Rozbalit Rozbalit vše Re: Rozdelenie disku s 4096 B sektormi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Rozhodne nepouzivej fdisk (nevim jak je na to novej, ale ...). Ma s disky >=1TB problem. Rozdel disk pomoci (g)parted a melo by byt vse v poradku.
24.8.2012 14:42 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Rozdelenie disku s 4096 B sektormi

fdisk by měl být v pohodě. Cituju z manuálové stránky:

-b sectorsize Specify the sector size of the disk. Valid values are 512, 1024, 2048 or 4096. (Recent kernels know the sector size. Use this 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.
24.8.2012 08:52 none
Rozbalit Rozbalit vše Re: Rozdelenie disku s 4096 B sektormi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj! Neumel by to tady nekdo vysvetlit? Konstatovani udelej to tim nebo onim nastrojem mne neuspojuje. Uz jsem ledascos precetl, ale neni mi jasne:

1) Jak zjistim, jak velike fyzicke sektory pouziva prave muj disk (512B vs. 4096B)?
2) Jak spravne zalozit partisny?
3) Jak to potom souvisi se sektorem filesystemu?

Diky!
24.8.2012 09:38 ubuntak
Rozbalit Rozbalit vše Re: Rozdelenie disku s 4096 B sektormi
ad 1/ napriklad parted -l ad 2/ a 3/ viz google ; to nejsou otazky ohledne linuxu ale zakladnich znalosti pojmu jako sector, cluster, filesystem. Doporujcuju se na to kouknout (google) a pak ti mozna dojde nesmysl ve tve otazce.
24.8.2012 10:10 none
Rozbalit Rozbalit vše Re: Rozdelenie disku s 4096 B sektormi
Nejspis jsem te zmatl pojmem sector u filesystemu. On z pohledu disku neni rozdil mezi sectorem a blokem, tak proto jsem ten pojem pouzil i u filesystemu, abych te nezpletl. Ale bohuzel, stal se opak. Diky za reakci.
24.8.2012 14:48 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Rozdelenie disku s 4096 B sektormi

1) 4096B disky bývají výrobcem označeny jako "Advanced Format". Vnést do tohoto světlo by mohl příkaz fdisk -l /dev/sdx, resp. dmesg

2) Při rozdělování je třeba správně programu zadat velikost sektoru, viz jak jsem psal výše (volba -b)

3) Nevím.

24.8.2012 23:02 JanM | skóre: 28
Rozbalit Rozbalit vše Re: Rozdelenie disku s 4096 B sektormi
Ad 2) Tak, aby začátek a velikost oddílu byl násobkem velikosti fyzického sektoru. V GUI programech obvykle stačí zaškrtnout "Zarovnat oddíly na 1 MB", což vyhovuje jak 512 B tak i 4096 B. parted se o to nejspíše postará sám.
# parted /dev/sdb unit B print
Model: ATA WDC WD10EARX-00N (scsi)
Disk /dev/sdb: 1000204886016B
Sector size (logical/physical): 512B/4096B
Tabulka oddílů: gpt
Disk Flags: 

Číslo  Začátek         Konec           Velikost        Systém souborů  Název  Přepínače
 1     1048576B        1000195751935B  1000194703360B                  zfs
 9     1000195751936B  1000204140543B  8388608B
1048576 je celočíselným násobkem 4096, stejně tak 1000194703360.

A stejně tak mám zarovnaný i disk s velikostí fyz. sektoru 512 B (aniž by to bylo třeba, ale neuškodí to).
# parted /dev/sda unit B print
Model: ATA M4-CT128M4SSD1 (scsi)
Disk /dev/sda: 128035676160B
Sector size (logical/physical): 512B/512B
Tabulka oddílů: msdos
Disk Flags: 

Číslo  Začátek     Konec          Velikost       Typ      Systém souborů  Přepínače
 1     1048576B    210763775B     209715200B     primary  ext4            boot
 2     210763776B  128035676159B  127824912384B  primary  ext4
P.S. Dle výpisů původního tazatele to vypadá, že fdisk vždy vypisuje počet sektorů pro jednotlivé oddíly o velikosti 512 B, bez ohledu na parametr -b 4096).
24.8.2012 09:17 Jary | skóre: 30 | blog: Jary má blog | Dům
Rozbalit Rozbalit vše Re: Rozdelenie disku s 4096 B sektormi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle jsem nedávno taky řešil, našel jsem nějaké články, URL nemám a vyřešil jsem to tak, jsem benchmarkem zjistil, že jsem to rozdělil asi dobře.

Musíš si dávat pozor, aby bloky disku byly zarovnané s bloky FS. To znamená že, nejjednodušeji, partition musí začínat na násobku 4096B. Taky je vhodné říct filesystému, ať použíá 4k bloky.

Musíš si dávat pozor, že dnešní disky lžou a reportují 512, smz zase kvůli Winďourům, kterým by se větší bloky nelíbily. Zajímavé jsou soubory jako:
[root@veverka ~]# cat /sys/block/sda/queue/hw_sector_size 
512
[root@veverka ~]# cat /sys/block/sda/queue/physical_block_size 
512
Nemám u sebe zrovna disk s velkými bloky.

Doporučené čtivo: http://lwn.net/Articles/377895/ http://johannes-bauer.com/linux/wdc/?menuid=3 https://wiki.archlinux.org/index.php/Advanced_Format
.sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.