Protože potřebuju občas nabootovat z flešky na cizím počítači a zároveň na ní přenášet data, musel jsem ji rozdělit na dva oddíly. Jeden FAT32 kvůli bezproblémovému přístupu ze všech OS a druhý oddíl FFS na kterém je OpenBSD. Napoprvé jsem disk rozdělil trochu zbrkle
# fdisk sd0
Disk: sd0 geometry: 30592/32/32 [31326208 Sectors]
Offset: 0 Signature: 0xAA55
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
-------------------------------------------------------------------------------
*0: A6 0 2 1 - 16384 1 32 [ 64: 16777216 ] OpenBSD
1: 0C 16384 0 2 - 30591 31 32 [ 16777217: 14548991 ] Win95 FAT32L
2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
V CHS modu jsou ty cylindry jakoby přes sebe, ale říkal jsem si mrdup všude píšou že je CHS mod obsolete a že moderní hawdware stejně používá LBA. Tak jsem začátek druhého oddílu nastavil na sektor hned za koncem oddílu prvního a nastavil mu 0C id. Disklabel se taky netváří že by bylo něco v nepořádku
# disklabel sd0
# /dev/rsd0c:
type: SCSI
disk: SCSI disk
label: USB FLASH DRIVE
duid: 1fd8fcefb21d21b5
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 1949
total sectors: 31326208
boundstart: 64
boundend: 16777280
drivedata: 0
16 partitions:
# size offset fstype [fsize bsize cpg]
a: 16777153 64 RAID
c: 31326208 0 unused
i: 14548991 16777217 MSDOS
Ten první oddíl s FFS je zašifrovaný softraidem, proto má "fstype RAID". Ale to by snad nemělo mít na tabulku oddílů v MBR vliv. Instalace OpenBSD proběhla bez problému. Pomocí mkfs msdos jsem na té FATce vytvořil filesystem. Když jsem z te flešky nabootoval, čtení/zápis na oba oddíly fungoval. Všecko vypadalo OK. Jenže potom jsem flešku píchnul do mašiny s Windows, tak ty hlásily error a nutily mě formátovaní. Na ten FAT32 oddíl mě nechtěly Windows vůbec pustit. Se zaťatými zuby jsem teda nechal Windows ať si ten FAT32 oddíl vytvoří samy, když s tím původním měly problém. Potom jsem při instalaci OpenBSD přidal druhý oddíl s FFS a první sektor pro jistotu nastavil až na začátek dalšího jakoby cylindru. Dopadlo to takto:
# fdisk sd0
Disk: sd0 geometry: 1949/255/63 [31326208 Sectors]
Offset: 0 Signature: 0xAA55
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
-------------------------------------------------------------------------------
0: 0B 0 32 33 - 956 62 2 [ 2048: 15360000 ] Win95 FAT-32
*1: A6 957 0 1 - 1948 254 63 [ 15374205: 15936480 ] OpenBSD
2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
Při tomto rozdělení disku to funguje v pořádku v jak v OpenBSD tak ve Windows. Co nechápu je:
1. Jak je možný, že při tom původním rozďělení disku to vadilo jenom jednomu systému? Přece když mám vadný MBR tak by měl být problém všude ve všech systémech.
2. Proč fdisk ukazuje úplně jinačí geometrii po tom novém rozdělení? fleška přece žádnou "geometrii" nemá tak si to fdisk nějak cucá z prstu?
3. Proč Windows nastavily id 0B na ten FAT32 oddíl kdyz FAT32 LBA ma mit id 0C?
4. Opravdu je CHS mod tak moc "obsolete" jak se všude povída?
5. Jak by podle vás mělo to rozdělení vypadat? Kde jsem poprvé udělal chybu?
Ještě malá offtopic otázka. Strašne dlouho trvá než mi to zašifrovany OpenBSD nabootuje. 3-4 minuty od zadáni hesla fleška jenom bliká jakoby se z ní četlo, žádný fsck nic takovýho neběží. Až potom se to chytne. Když to zašifrovaný není, nabootuje to jak blesk hned. Co se ty 4 minuty děje? Nešlo by to nejak zrychlit?