On 8 May 2012, at 21:54, Valentin Nechayev wrote:
Mon, May 07, 2012 at 16:29:00, vsjcfm wrote about "[freebsd] Re:
[freebsd] ZFS на винтах с 4К секторами":
В случае 64-битной версии ОС Microsoft Windows
NT,
за GPT зарезервировано 32 сектора или 16
384 байта (при использовании
сектора размером 512, а не 4 096 байт), так
что первым используемым
сектором каждого жёсткого диска в
ней будет блок LBA 34.
В общем случае это не только Windows.
Полностью GPT состоит из:
* primary header - 92 байта - по LBA=1 (здесь и
далее смещения в секторах,
рапортуемых на шине), остаток сектора
свободен
* partition array - не менее 128 записей, каждая
из которых не менее 128
байт; есть методы расширения, но на
практике они никому нафиг не нужны и
поэтому у всех нынешних ОС
свежесозданная таблица занимает 16384
байта.
* backup header - те же 92 байта в начале
последнего сектора (LBA=max)
(но может быть раньше, если, например,
диск из массива, созданного под
RAID-контроллером, читается вне
контроллера; но редактировать такую
таблицу
нельзя без исправления размещения)
Если LBA=0 занято под PMBR, а LBA=1 - под GPT
primary header, то partition
array займёт 32 512-байтных сектора, или 4 4K-
байтных. Соответственно
и first usable LBA будет 34 или 6
соответственно.
В сумме тут дикая смесь правил
"считать по количеству секторов" или
"считать
по размеру данных", поэтому думать
такое неудобно.
Лучше запомнить пару чисел или свести
в табличку.
А как он себя поведёт, если появятся
диски, рапортующие 4Kb сектор (без
эмуляции 512-ых байт секторов)?
man gnop - можете проверить :)
А зачем gnop? Это лишний уровень.
gnop нужен только на момент создания
пула.
Вот например краткое и толковое
описание:
http://ivoras.net/blog/tree/2011-01-01.freebsd-on-4k-sector-drives.html
cd /var/tmp
dd if=/dev/zero of=disk1 bs=1m count=100
mdconfig -a -t vnode -f /var/tmp/disk1 -S 4096
gpart create -s GPT /dev/md0
gpart add -s 2m -t freebsd-ufs /dev/md0
yes 'Ha ha' | dd of=/dev/md0p1 bs=4096
dd if=disk1 | hd | less
и видим:
00001000 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00 |EFI
PART....\...|
[...]
00002000 b6 7c 6e 51 cf 6e d6 11 8f f8 00 02 2d 09 71 2b |І|
nQоnж.Ь..-.q+|
00002010 67 a0 9e ab 3e 99 e1 11 80 be 00 01 02 64 8e a0 |
g═╚>А.╬...d═|
00002020 06 00 00 00 00 00 00 00 05 02 00 00 00 00 00 00
|................|
00002030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|................|
[...]
00006000 48 61 20 68 61 0a 48 61 20 68 61 0a 48 61 20 68 |Ha
ha.Ha ha.Ha h|
00006010 61 0a 48 61 20 68 61 0a 48 61 20 68 61 0a 48 61 |a.Ha
ha.Ha ha.Ha|
00006020 20 68 61 0a 48 61 20 68 61 0a 48 61 20 68 61 0a | ha.Ha
ha.Ha ha.|
00006030 48 61 20 68 61 0a 48 61 20 68 61 0a 48 61 20 68 |Ha
ha.Ha ha.Ha h|
-netch-
Александр Вырланович
--------------------------
Системный Администратор
ПИК "СМК"