Pro používání disku o kapacitě 128 GB a více v amize budeme potřebovat:
- Patchnutou verzi scsi.device;
- zavaděč LoadModule;
- Professional File System 3;
- HDInstTools (lze ale použít i HDToolBox);
- disk o kapacitě 128 GB a více připojený k pc;
- WinUAE spuštěný v režimu správce;
- disk bude připojený k pc;
- disk bude dostupný ve WinUAE pro zápis;
- pro použití disku ve skutečné amize pak ještě IDE-SATA redukci;
- Výše uvedený software stáhneme do sdíleného disku, nebo v případě přípravy na amize na CF kartu nebo samostatnou disketu;
- z diskety Install 3.1 spustíme systém;
- patchneme stávající scsi.device;
- po restartu spustíme HDInstTools a na disku připravíme první partition;
- nainstalujeme Workbench;
- připravíme zbývající partitiony;
- výsledky ověříme;
- disk použijeme ve standardní amize;
- a ještě jednou vše ověříme nyní na skutečné amize.
Standardní scsi.device dokáže přistupovat k diskům o velikosti 4 GiB, resp. 7,87 GiB. Scsi.device v AmigaOS 3.5 a 3.9 již patchnuté je, nicméně dokáže obsloužit disky „jen“ do kapacity 128 GiB. Nad tento limit je potřeba použít scsi.device, které připravila trojice Chris Hodges, Toni Wilen a Christian Sauer. Jimi upravená verze scsi.device se nachází v BoingBagu 3&4 pro AmigaOS 3.9.
Patchnuté scsi.devices najdete v balíčku v umístění BoingBag3.9-3&4\Files2\Devs\ . Na tomto místě jsou patchnutá scsi.devices pro většinu standardních amig.
V umístění BoingBag3.9-3&4\Files1\Locale\Help\english\ najdete scsi.device.readme, které doporučuji přečíst.
scsi.device 43.45 BoingBag 4 Amiga
Pro jistotu dávám vše podstatné ke stažení na jedné adf disketě, kterou jsem pojmenoval LargeDisksSupport.
Podrobný postup
Z diskety Install 3.1, která je v DF0:, nastartujeme Workbench 3.1, emulátor máme spuštěný jako správci, máme připojený externí disk, v DF1: máme LargeDisksSupport a máme splněna všechny výše uvedené předpoklady.
Většina ikon jsou vytažené z diskety LargeDisksSupport. Nejdříve ověříme aktuální verzi scsi.device (1) a následně zavedeme patchnuté scsi.device (2). Na DF1: mám adresář scsi, kde se nachází patchnuté scsi zařízení pro jednotlivé amigy, proto je aktivace patchnutého scsi.device provedena příkazem loadmodule scsi/scsi-a1200.device.
Po patchnutí scsi.device se systém restartuje a my můžeme přikazem version scsi.device ověřit, zda máme opravdu scsi.device ve verzi 43.45.
Spustíme HDInstTools a tlačítkem Setup Drive načteme geometrii disku.
Resp. geometrie se načte automaticky, ale pro jistotu si vynutíme příkazem Inquiry její znovunačtení. Z okna odcházíme přes tlačítko Use. Všimněte si, že v mém případě HDInstTools načetl disk o velikosti cca 381,5 tisíce MB.
Nyní tlačítkem File system zavedeme souborový systém PFS3.
Volíme Add
a zacílíme na zavaděč pfs3_aio-handler.
Je třeba upravit DOSType na PDS\3, zbytek neměňte.
Další souborový systém zavádět nepotřebujeme, odejdeme tedy tlačítkem Use.
Nyní nastavíme první partition. Způsobů, jak dále postupovat, může být více. Já jsem se rozhodl nejdříve připravit první partition, nainstalovat na něj systém a teprve následně připravit ostatní partitiony. Volím tedy tlačítko Partition drive.
Nový partition přidáme tlačítkem Add partition
a tlačítkem Edit partition jej začnu upravovat.
Obrazovka vypadá takto a výchozí hodnoty bude potřeba změnit.
Změníme tedy File system na Custom (1), DOSType na PDS\3 (2), pozor, musí být napsáno velkými písmeny, nastavíme MaxTransfer na 1fe00 (3) a zvýšíme buffery na hodnotu 150 (4).
Nyní nastavíme velikost prvního partitionu, což lze provést odhadem přes táhlo Size, nebo to nastavíme přesně. Velikost partitionu DH0 musí být bezpodmínečně menší než 2^32 bajtu.
Tento vzorec spočítá celkovou velikost disku v bajtech
Počet cylindrů × počet hlav × počet sektorů (bloků na stopu) × velikost bloku v bajtech = velikost disku v bajtech.
Vstupní hodnoty pro výpočet právě vašeho disku naleznete v před chvílí načtené geometrii disku.
Velikost mnou připojovaného disku v bajtech je
2 164 606 cylindrů × 1 hlava × 361 bloků na stopu × 512 (velikost bloku v bajtech) = 400 088 456 192 bajtů, neboli cca 400 GB, neboli cca 372, 6 GiB.
Otázka je, jaké je číslo cylindru, který leží na hranici 2^32, což je limit scsi.device, což vypočítáme vzorcem
2^32/součin hlav, bloků na stopu a velikost bloku v bajtech, tedy
2^32/(1×361×512) = 23237,141274238227146814404432133.
Tedy v mém případě by číslo 23 237 mělo být číslem nejvyššího cylindru v limitu 2^32, tedy limitu scsi.device. Správně bych měl odebrat jeden cylindr pro RDB, nicméně já těch cylindrů raději odeberu 11, tedy mnou nastavený limitní cylindr pro DH0 bude 23 226. Pro toto číslo nemám exaktní důvod, pokud bych odebral ještě několik desítek nebo stovek cylindrů, nic by se nestalo. Mimochodem, objemově je jeden cylindr cca 185 kB (součin počtu bloků na stopu, velikost bloku v bajtech a počet hlav).
Já tedy nastavuji jako hraniční cylindr označený číslem 23 226.
Tato hodnota je vypočítaná jen pro tento konkrétní disk, pro jiné disky bude potřeba spočítat přesný hraniční cylindr z hodnot uvedených v geometrii disku. Zadáním nesprávných hodnot váš disk čekají nepěkné věci 🙁 .
Nyní máme všechny detaily partitionu DH0 správně nastaveny, z okna odcházíme přes tlačítko Use. Ještě si prosím všimněte, že velikost partitionu v kB je 4 192 256, což je číslo, které je někde kolem 4 GiB limitu.
Další partitiony budeme nastavovat později, až nainstalujeme Workbench. Volíme tedy Use.
a Save changes to drive
Ověřovací okna potvrdíme dvakrát přes Yes a necháme systém restartovat.
Po restartu se během chvíle ohlásí partition DH0:NDOS, který naformátujeme
Disk pojmenujeme, zrušíme koš a provedeme Quick Format.
První partition máme připravený, můžeme na něj nainstalovat systém.
Nainstalovaný systém máme nyní na DH0 a můžeme se pustit do znovupatchnutí scsi.device. Scsi.device, které je v romce 3.1, má označení 40.12 a je potřeba je vždy po studeném startu povýšit na verzi 43.45.
Nejdříve však z diskety LargeDisksSupport překopírujeme příkaz LoadModule a patchnuté scsi.device.
Tedy z DF1: přes přikaz copy df1: loadmodule c: zkopírujeme zavaděč LoadModule do C: systémového disku.
Pak přes copy df1:scsi/scsi-a1200.device devs:scsi.device z df1 (konkrétně z adresáře scsi) zkopírujeme patchutou verzi scsi-a1200.device do devs: pod názvem scsi.device. Případně verzi pro jinou amigu, v adresáři scsi jsou verze od Amigy 600 po Amigu 4000.
A na závěr příkazem ed s:startup-sequence upravíme startup sequenci tak, aby se při každém bootu patchnul scsi.device na požadovanou verzi 43.45.
Tedy do Startup sequence kamkoli před SetPatch vložte řádek C:LoadModule DEVS:scsi.device
Nezapomeňte startup sequenci uložit
Následně emulátor restartujte a po restartu ověřte verzi scsi.device.
Nyní to znamená, že vždy po jakémkoli rebootu bude načtena verze scsi.device, která podporuje disky o kapacitě 128 a více GB.
Dále se pustíme do přidání dalších partitionů, tedy spustíme HDInstTools.
Geometrii disku máme načtenou, souborový systém taktéž (připravili jsme vše před přípravou prvního partitionu), začneme tedy přes tlačítko Partition drive přidávat další partitiony.
Volíme tedy Add partition a následně Edit partition.
Výchozí hodnoty nového partitionu změníme na
File system Custom (1), DOSType PDS\3 (2), MaxTranfer 1fe00 (3) a buffery na 150 (4).
Nyní potřebujeme určit velikost partitionu DH1. Posuvníkem to příliš nepůjde, protože se po určitém množství cylindrů velikost nuluje. Nicméně velikost partitionu můžeme opět dopočítat. PFS3 aktuálně dokáže pracovat s partitiony o velikosti 104 GiB. My nebudeme troškařit a vytvoříme několik 100 GB partitionů.
100 GB = 100 × 2^30, tedy 107 374 182 400 bajtů
Otázka je, který cylindr je limitním cylindrem pro 100 GB, tedy pro 107 374 182 400 bajtů.
Připomenu, že celkovou kapacitu disku spočítáme ze vzorce
Počet cylindrů × počet hlav × počet bloků na stopů (sektorů) × velikost bloku v bajtech
vezmu hodnoty z mnou načtené geometrie disku
2 164 606 cylindrů × 1 hlava × 361 bloků na stopu × 512 (velikost bloku v bajtech) = 400 088 456 192 bajtů.
Opakuji otázku: který cylindr je na 100 GB? Na to odpoví vzorec
Limit 100 GB/součin hlav, bloků na stopu (sektorů) a velikosti bloku
Tedy
100 GB × 2^30 / (1 hlava × 361 bloků na stopu × 512 bajtů v bloku) = 580 928,5319.
V mém případě je číslo 580 928 číslo limitního cylindru, do kterého se vejde 100 GB dat. Toto číslo budu zadávat do políčka Cylinders.
Zadanou hodnotu potvrdíme tlačítkem Use. Mimochodem, v horní čísti okna si všimněte v políčku kBytes, že hodnota sice není 100 GB, ale velmi se jí blíží. Jak přesně HDInstTools počítá velikost disku mi není jasné, nicméně to asi nebude až tak podstatné.
V okně HDInstTools: Partition Drive vidíme nový partition DH1 o velikosti 4095 MB, což je číslo, které neřešíme, ve skutečnosti má partition velikost opravdu 100 GB. Volíme tedy Add partition a Edit partition.
Pro partition DH2 nastavíme stejné hodnoty jako pro partition DH1, tedy včetně limitního cylindru 580 928. Z okna odcházíme přes tlačítko Use.
Přes Add partition a Edit partition provedeme to stejné pro partition DH3.
A vytvoříme poslední partition, tedy opět volíme Add partition a Edit partition.
Ve vlastnostech partitionu DH4 volím jen File System Custom, DOSType PDS\3, MaxTransfer 1fe00 a 150 bufferů. Cylindry již nenastavuji, protože na disku zbývá již jen nějakých 70 GB a já celou tuto kapacitu použiju pro zbývající partition DH4.
Pokud bych měl disk o vyšší kapacitě než 400 GB, opakoval bych tvorbu partitonů tolikrát, kolik dalších partitonů bych potřeboval vytvořit. Nebo bych zbývající místo nechal nealokováno.
Pro jistotu ještě jednou upozorňuji, že velikost partitionu v PFS3 může být 104 GiB, partitiony o vyšší kapacitě nevytvářejte.
Máme tedy vytvořené partitiony:
- DH0 o kapacitě 4 GB
- DH1 o kapacitě 100 GB
- DH2 o kapacitě 100 GB
- DH3 o kapacitě 100 GB
- DH4 o kapacitě cca 70 GB
Z okna odcházíme přes tlačítko Use.
V posledním okně přes tlačítko Save changes to drive vše uložíme a systém restartujeme.
Po restartu se objeví neiniciované partitiony, které začneme jeden po druhém formátovat. Pro přehlednost jsem v tomto kroku nastartoval systém jen z DH0:, DF1: či cokoli jiného je ze systému odebráno.
Ověření ve WinUAE
Po naformátování posledního partitionu pro jistotu provedu restart a do systému připojím disketu LargeDisksSupport, abych programy Check4GB a HDDReport provedl kontrolu.
Check4GB hlásí, že je vše v pořádku, u některých partitionů však vidím otazníky. Jedná se o partitiony za limitem 128 GB. Nicméně program Check4GB není až tak podstaný, není již dnes podporovaný, jeho zobrazované hodnoty nemusí být zcela korektní. Podporovaný program je HDDReport.
HDDReport hlásí, že je vše v pořádku.
Bohužel Workbench 3.1 vůbec nedokáže správně zobrazovat velikost partitionů nad 2 GiB, cokoli nad 2 GiB zobrazuje od 0. Jedná se však jen o vizuální záležitost, neznamená to, že by se data ztrácela. Což je dáno tím, že používáme patchnutý scsi.device.
Dostupnost zbývajícího místa sice ve Workbenchi 3.1 nezjistíte, ale zjistíte to např. v Directory Opusu 4.16.
Ověření ve skutečné amize
Emulátor vypínám, disk odpojím od Windows a přes IDE-SATA redukci Digitus připojuji disk k Amize 1200.
Amigu se zatajeným dechem zapínám a po chvíli napětí zjišťuji, že amiga z disku standardně najede. V amize provedu kontrolu přes Check4GB a HDDReport, přičemž vidím stejné výsledky jako v emulátoru. Zdá se, že je vše v pořádku a já můžu v Amize 1200 používat na IDE řadiči moderní SATA disk o kapacitě několika stovek GB.
Patchování scsi.device je nezbytné
Pozor, jestliže byste tento systém nastartovali bez Startup sekvence, disky nad hranicí 8 GB by byly nečitelné. Podobná situace by nastala pokud byste amigu nastartovali z diskety. Tohle je daň za možnost používání takto velkého disku. Buďte si tedy vědomi okamžité potřeby patchování scsi.device vždy po bootu amigy.
Závěr
Pokud byste stáli o zprovoznění velkého disku a nedařilo by se vám, zkuste:
- SATA disk připojit k jinému USB portu (u mě občas disk nebyl nalezen, ale možná to byl problém jen konkrétního USB portu);
- vymažte RDB. Buď vHDInstToolsu, nebo utilitou KillRDB (je i na disketě LargeDisksSupport)
- smažte ve Windows přes příkaz Diskpart MBR;
- a jako spíše již zoufalost může být zformátování celého disku. Ne rychloformát. Rychloformát = Diskpart clean. Plnohodnotný formát takto velkého disku však vezme 5 a více hodin;
- zkuste disk připravit přímo na amize. Budete pro to potřebovat nabootovat třeba z diskety Install 3.1 (nebo z jakékoli jiné diskety) a budou se vám hodit data z diskety LargeDisksSupport, kterou snadno převedete z adf na skutečnou disketu.
- Ještě doplním, že ve výše uvedeném příkladu patchuji originální scsi.device verzí 43.45. Lze použít i verzi od Doobrey (44.20), která by měla být dokonce oproti verzi 43.45 rychlejší. Nicméně mně tato verze scsi.device nefunguje na 68060 cpu. Na Motorole 68000, 020 a 030 však jede bez problémů.
Na co si dát pozor
- moderní nosiče Compact Flash, SD i další karty nespolupracují dobře sIDEFixem, resp. IDEFixu se přezdívá Killer CF karet.
- problematická je kombinace CF a CDROM na jednom šráku