Ămnet för den hĂ€r artikeln handlar om att ansluta externa enheter till en Mac via SAS-, Fibre Channel (FC) och eSATA-grĂ€nssnitt. LĂ„t oss genast klargöra att det finns ett hĂ€lsosamt sĂ€tt att lösa problemet med att komma Ă„t sĂ„dana enheter: montera en billig dator, anslut ett HBA SAS- eller FC-kontrollerkort (till exempel den enklaste LSI-adaptern), anslut dina enheter till den hĂ€r kontrollern, installera valfri Linux pĂ„ datorn och arbeta med Macen via nĂ€tverket. Men detta Ă€r trivialt och ointressant. Vi kommer att gĂ„ den hĂ„rdföra vĂ€gen och ansluta vĂ„ra enheter. direkt till Mac.
Vad vi behöver för detta:
- en hyfsad summa pengar för att köpa ny utrustning, eller tur pÄ auktioner pÄ eBay (dÀr du med lite anstrÀngning kan köpa den nödvÀndiga utrustningen frÄn tidigare generationer 10 gÄnger billigare Àn prislistan);
- Den hÀr artikeln.
För att arbeta med magnetband (som för nÀrvarande nÀstan universellt representeras av LTO-formatet) behöver du ha en bandstation (streamer) eller ett bandbibliotek av LTO-standard. Detta Àr en ganska dyr enhet vid första köpet (frÄn hundratusentals rubel), men vÀrd en rimlig kostnad nÀr den köps begagnad. Eftersom LTO-generationer byts ungefÀr vartannat Är, och kompatibiliteten Àr begrÀnsad till tvÄ generationer, Àr sekundÀrmarknaden tillrÀckligt mÀttad med fungerande enheter som Àr fyra Är gamla eller mer, d.v.s. generationen före förra och uppÄt. Om du köper en ny enhet för kommersiella ÀndamÄl förstÄr du sjÀlv varför du behöver den. Om du vill köpa för hemmet och familjen kan du övervÀga detta alternativ som ett sÀtt att arkivera information (eftersom sjÀlva mediet Àr mycket billigt per 1 gigabyte).
FrÄn och med LTO-5-generationen (och delvis LTO-4) Àr magnetbandsenheter hÄrdvaruanslutna till en dator via ett SAS- eller FC-grÀnssnitt (vanligtvis finns det tvÄ versioner av varje enhet).
Ă andra sidan förser Apple oss vĂ€nligen med ett USB-C-grĂ€nssnitt i vĂ„r Mac (som fungerar via USB-, Thunderbolt 3- eller DisplayPort-protokoll), ibland ett Ethernet-grĂ€nssnitt, samt proprietĂ€ra Thunderbolt 3 â Thunderbolt 2- och Thunderbolt â FireWire 800-adaptrar.
En ÄtervÀndsgrÀnd? Inte riktigt. Som tur Àr kan Thunderbolt-bussen fungera i PCIe-lÀge, vilket gör att PCIe-kort kan anslutas som om de vore installerade direkt i datorhöljet. Detta gör det möjligt att utöka Macens hÄrdvarukonfiguration, sÄ lÀnge det finns en lÀmplig adapter och drivrutiner.
Konceptuellt sett Àr det enklaste sÀttet att lösa problemet en extern box för PCIe-adaptrar med ett Thunderbolt-grÀnssnitt (PCIe-kortutbyggnadssystem), i vilken du kan installera en styrenhet (Host bus adapter, HBA) SAS eller FC. Till exempel produceras sÄdana boxar av företaget. och nÄgra andra. Det finns en varning hÀr: inte alla kontroller fungerar för oss, bara de med en drivrutin för macOSDet finns vÀldigt fÄ sÄdana kort, och de billigaste och mest populÀra (till exempel samma LSI) finns inte bland dem. Som tur var tog Sonnet sig besvÀret att kompilera PCIe-kort med olika operativsystem via Thunderbolt-grÀnssnitt.
En annan lösning Àr att köpa en fÀrdig Thunderbolt-SAS- eller Thunderbolt-FC-grÀnssnittsomvandlare, vilket i huvudsak Àr en fÀrdig montering av en lÄda och en styrenhet. Företaget som Àr mest kÀnt inom detta omrÄde Àr , men det finns Àven produkter frÄn andra företag.
Observera att inte alla SAS- och FC-styrenheter Àr certifierade för att uppfylla LTO-standarden, eftersom detta i sig kostar pengar. Vissa tillverkare anger direkt att deras styrenheter inte Àr utformade för att fungera med bandenheter.
För att komplettera bilden noterar vi att företaget mLogic producerar , vilket Àr en IBM LTO-8-enhet i ett externt chassit, i vilket en SAS till Thunderbolt 3-omvandlare omedelbart Àr integrerad. Detta Àr dock en Ànnu mer exotisk sak Àn allt ovanstÄende, sÀrskilt med tanke pÄ vÄr regions mÄtt mÀtt. Jag tvivlar pÄ att den hÀr enheten ens kan importeras lagligt till Ryssland (LTO-enheter innehÄller kryptografiska verktyg, och av denna anledning fÄr tillverkare som IBM och HP FSB-importtillstÄnd för varje modell).
HÀrnÀst kommer vi som exempel att betrakta en specifik uppsÀttning utrustning, vars Àgare författaren blev resultatet av flera framgÄngsrika köp, men den allmÀnna principen bör bibehÄllas för alla alternativ.
SÄ har vi följande utrustning för att arbeta med tejpen:
â Apple Mac mini 2018-dator med macOS 10.15 Catalina, som har USB-C-portar med Thunderbolt 3-stöd;
â Apple Thunderbolt 3 / Thunderbolt 2-adapter;
â Apple Thunderbolt 2-kabel;
â ATTO ThunderLink SH 1068 grĂ€nssnittsomvandlare (2*Thunderbolt / 2*SAS-2);
â SAS-kabel SFF-8088 â SFF-8088;
â LTO-5-bandenhet IBM TS2350;
â LTO-5-patroner, rengöringspatron.
Nu, som man sÀger, med allt det hÀr skiten ska vi försöka lyfta.
Ladda ner den senaste versionen av ThunderLink SH 1068-drivrutinen frÄn ATTO:s webbplats (tydligen, för vÄr bekvÀmlighet, Àr den kombinerad med SH 2068-drivrutinen och finns i 2068-avsnittet, som endast finns skrivet i arkivet med drivrutinen) och ATTO-konfigurationsverktyget.

Drivrutinen mÄste naturligtvis installeras. Innan sÄdana ÄtgÀrder vidtas rekommenderar författaren alltid att man gör en ögonblicksbild av APFS-filsystemet pÄ startdisken med kommandot
tmutil localsnapshoteller en sÀkerhetskopia av startdisken, om det Àr HFS+. Man vet aldrig. DÄ blir det enkelt att ÄterstÀlla frÄn ögonblicksbilden.
DÀrefter kommer ett oerfaret men noggrant sinne utan tvekan att vara benÀget att noggrant lÀsa installationsanvisningarna för ATTO-drivrutinen och följa dem. Resultatet Àr - ta-da! - ett operativsystem som hÀnger sig i startfasen. HÀr kan en ögonblicksbild vara anvÀndbar, frÄn vilken vi kan ÄterstÀlla genom att anropa Time Machine frÄn ÄterstÀllningspartitionen, eller frÄn samma ÄterstÀllningspartition kan vi manuellt radera den sjuka kext frÄn kÀrnans tillÀggskatalog (författaren rekommenderar i allmÀnhet inte att göra detta).
Varför hÀnder detta? För att Apple har tagit hand om oss. I de senaste versionerna macOS Man kan inte bara injicera frÀmmande kod i startprocessen. De vÀnliga Apple-programmerarna har blockerat detta destruktiva beteende. Mer exakt, de har blockerat det halvvÀgs: nÀr drivrutinens vÀntelÀge injiceras, men inte sjÀlva drivrutinen, hÀnger sig allt bara.
Vad bör ett sofistikerat sinne göra innan de installerar en drivrutin? Först, ge kommandot:
csrutil statusOm vi ââsom svar pĂ„ det fĂ„r:
Status för systemintegritetsskydd: aktiverat.
dĂ„ betyder det att de duktiga Apple-programmerarna bryr sig om oss, sĂ„ ingenting kommer att fungera för oss förrĂ€n vi inaktiverar deras fantastiska skydd. För att göra detta, starta om i Ă„terstĂ€llningspartitionen (âR), anropa terminalen och ge kommandot:
csrutil disableDÀrefter startar vi om i det fungerande systemet och installerar sedan drivrutinen och samtidigt ATTO-konfigurationsverktyget (i princip behövs konfigurationsverktyget endast för diagnostik och krÀvs inte för normal drift). LÀngs vÀgen, nÀr vi blir tillfrÄgade, bekrÀftar vi ATTO-företagets auktorisering i systeminstÀllningarna. Efter installationen kan du starta om igen i ÄterstÀllningsavsnittet och ge kommandot.
csrutil enableApple bryr sig om oss igen.
Nu har vi ett drivrutinsstödt grÀnssnitt till externa SAS-enheter (eller FC, om en FC-omvandlare anvÀndes). Men hur arbetar man med bandet pÄ logisk nivÄ?
Som den oinvigde, men lÀrde vet, stöder alla Unix-kompatibla system bandenheter pÄ kÀrnnivÄ och de huvudsakliga systemverktygen, vilka frÀmst inkluderar mt (tape drive control) och tar (en arkiverare som stöder arbete med arkiv pÄ band). Men vad kan den erfarna förtydliga om detta? Alla Unix-kompatibla system, Förutom macOSApple har tagit hand om oss genom att ta bort stöd för bandenheter frÄn sin kod.
Men Àr det verkligen omöjligt att ÄterstÀlla den hÀr koden genom att portera de vanliga Unix-verktygen med öppen kÀllkod till macOSDen goda nyheten Àr att Tolis (som jag inte kommer att lÀnka till) redan har gjort detta i sin Tolis Tape Tools-produkt. Den dÄliga nyheten Àr att företaget tar 399 dollar för anvÀndningen av sitt arbete. Uppskattningar av detta kan variera, men författaren Àr personligen inte beredd att betala nÄgon 400 dollar för kod som mestadels skrevs av andra personer och har varit i öppet bruk sedan 1970-talet, sÄ författaren anser att den hÀr frÄgan Àr avslutad. (Förresten, det finns ett övergivet, vagt pÄgÄende öppen kÀllkodsprojekt pÄ GitHub.) om samma Àmne).
Som tur Àr finns IBM, ett företag vars kommersiella aptit Àr i en helt annan skala och dÀrför inte manifesterar sig i triviala frÄgor. Mer specifikt utvecklade de bandfilsystemet LTFS med öppen kÀllkod, som bland annat distribueras för macOS.
Det finns en nyans hÀr, nÀmligen att olika bandstationstillverkare slÀpper sina egna versioner av LTFS som stöder deras enheter. Eftersom författaren anvÀnder en IBM-bandstation installerade jag LTFS frÄn IBM. Enheter frÄn andra företag kan krÀva sina egna LTFS-portar. Och det finns en universell implementering av openLTFS pÄ GitHub och Homebrew.
Det som Àr viktigt för oss Àr att LTFS anvÀnder mediapartitioneringsfunktionen och dÀrför kan fungera med enheter och patroner frÄn och med LTO-5-generationen.
SÄ, i vÄrt fall laddar vi ner IBM Spectrum Archive Single Drive Edition-produkten frÄn IBMs webbplats. macOS, vilket inkluderar LTFS-implementeringen. Vi installerar produkten utan komplikationer med hjÀlp av dess eget installationsprogram. LÀngs vÀgen installeras Àven FUSE-paketet, men du mÄste bekrÀfta auktoriseringen av en smart programmerare vid namn Anatol Pomozov i systeminstÀllningarna, som i det hÀr fallet hela IBM-systemet Àr beroende av. Respekt och beundran för den hÀr mannen.
Det Àr lÀmpligt att omedelbart skriva följande rad i filen /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:
alternativ enkel enhet sync_type=time@1
vilket stÀller in standardbandmonteringen med rensning av skrivbufferten efter 1 minuts inaktivitet (standard Àr 5 minuter).

Ăntligen Ă€r allt klart för anslutning. Vi ansluter kedjan: Mac â T3/T2-adapter â Thunderbolt-kabel â ATTO-omvandlare â SAS-kabel â bandstation (det Ă€r inte viktigt att vĂ€lja mellan flera portar pĂ„ Mac-datorn, omvandlare och enhet). Vi slĂ„r pĂ„ strömmen till omvandlaren. Vi slĂ„r pĂ„ strömmen till bandstationen. Vi vĂ€ntar pĂ„ att enheten ska slutföra initialiseringen enligt indikationen.
Vi ger kommandot:
ltfs -o device_listHurra! Vi fÄr (pÄ vanligt IBM-diagnostikmanér):
307 LTFS14000I LTFS startar, LTFS version 2.4.2.0 (10418), loggnivÄ 2.
307 LTFS14058I LTFS-formatspecifikation version 2.4.0.
307 LTFS14104I Startades av "ltfs -o device_list".
307 LTFS14105I Den hÀr binÀrfilen Àr byggd för Mac OS X.
307 LTFS14106I GCC-versionen Àr 4.2.1 kompatibel med Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I KĂ€rnversion: Darwin KĂ€rnversion 19.4.0: ons 4 mars 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS17085I Plugin: Laddar âiokitâ-bandbackend.
Lista över bandenheter:.
Enhetsnamn = 0, Leverantörs-ID = IBM, Produkt-ID = ULT3580-TD5, Serienummer = **********, Produktnamn = [ULT3580-TD5].
Vi sÀtter i kassetten, vÀntar pÄ att den laddas och formaterar den:
mkltfs -d 0 -nTest -r "size=10M/name=.DS_Store"HÀr anger parametern -d enhetsnumret (alltid noll om det bara finns ett, men det kan inte utelÀmnas i det hÀr kommandot), -n Àr bandnamnet (det kan utelÀmnas) och parametern -r krÀver att innehÄllet i .DS_Store-filer som inte överstiger 10 megabyte placeras i indexavsnittet (dvs. avsett för kataloger) pÄ bandet istÀllet för dataavsnittet.
Ett mystiskt liv har börjat i bandstationen. Vi vÀntar ett par minuter och fÄr följande som svar:
LTFS15000I Startar mkltfs, LTFS version 2.4.2.0 (10418), loggnivÄ 2.
LTFS15041I Startad av "mkltfs -d 0 -nTest -r size=10M/name=.DS_Store".
LTFS15042I Den hÀr binÀrfilen Àr byggd för Mac OS X.
LTFS15043I GCC-versionen Àr 4.2.1 kompatibel med Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I KĂ€rnversion: Darwin KĂ€rnversion 19.4.0: ons 4 mars 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formaterar enhet '0'.
LTFS15004I LTFS-volymens blockstorlek: 524288.
LTFS15005I Placeringspolicy för indexpartitioner: storlek=10M/namn=.DS_Store.LTFS11337I Uppdatering av index-dirty-flagga (1) - NO_BARCODE (0x0x1021081e0).
LTFS17085I-plugin: Laddar "iokit"-bandbackend.
LTFS30810I Ăppnar en enhet via iokit-drivrutinen (0).
LTFS30814I Leverantörs-ID Àr IBM.
LTFS30815I Produkt-ID Àr 'ULT3580-TD5'.
LTFS30816I firmware-revisionen Àr H976.
LTFS30817I-diskens serienummer Àr **********.
LTFS17160I Maximal enhetsblockstorlek Àr 1048576.
LTFS11330I Laddar kassett.
LTFS30854I Skyddet för logiskt block Àr inaktiverat.
LTFS11332I Laddningen lyckades.
LTFS17157I Ăndrar hĂ„rddiskinstĂ€llningen till skrivvar som helst-lĂ€ge.
LTFS15049I Kontrollerar mediet (montering).
LTFS30854I Skyddet för logiskt block Àr inaktiverat.
LTFS15010I Skapar datapartition b pÄ SCSI-partition 1.
LTFS15011I Skapar indexpartition a pÄ SCSI-partition 0.
LTFS17165I à terstÀller mediets kapacitetsproportion.
LTFS11097I Partitionerar mediet.
LTFS11100I Skriver etikett till partition b.
LTFS11278I Skriver index till partition b.
LTFS30808I READ_ATTR (0x8c) returnerar -20501.
LTFS30865I READ_ATTR returnerar ogiltigt fÀlt i CDB (-20501) 0.
LTFS30836I Kan inte lÀsa attributet (-20501).
LTFS11336I Attributet finns inte. Ignorera det förvÀntade felet.
LTFS17235I Skriver index för NO_BARCODE till b (Orsak: Format, 0 filer) **********.
LTFS17236I Skrev index för NO_BARCODE (b, **********).
LTFS11337I Uppdatering av index-dirty-flagga (0) - NO_BARCODE (0x0x1021081e0).
LTFS11100I Skriver etikett till partition a.
LTFS11278I Skriver index till partition a.
LTFS30808I READ_ATTR (0x8c) returnerar -20501.
LTFS30865I READ_ATTR returnerar ogiltigt fÀlt i CDB (-20501) 0.
LTFS30836I Kan inte lÀsa attributet (-20501).
LTFS11336I Attributet finns inte. Ignorera det förvÀntade felet.
LTFS17235I Skriver index för NO_BARCODE till en (Orsak: Format, 0 filer) 9068025555.
LTFS17236I Skrev index för NO_BARCODE (a, **********).
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.LTFS15019I-volymkapaciteten Àr 1425 GB.
LTFS30854I Skyddet för logiskt block Àr inaktiverat.
LTFS15024I-mediet har formaterats.
Montera det formaterade bandet:
sudo mkdir /Volumes/LTFS
sudo chmod 777 /Volumes/LTFS/
sudo ltfs /Volumes/LTFSVi fÄr ett par minuter till körning, diagnostik:
307 LTFS14000I LTFS startar, LTFS version 2.4.2.0 (10418), loggnivÄ 2.
307 LTFS14058I LTFS-formatspecifikation version 2.4.0.
307 LTFS14104I Startad av âltfs /Volumes/LTFS/â.
307 LTFS14105I Den hÀr binÀrfilen Àr byggd för Mac OS X.
307 LTFS14106I GCC-versionen Àr 4.2.1 kompatibel med Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I KĂ€rnversion: Darwin KĂ€rnversion 19.4.0: ons 4 mars 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I Synkroniseringstypen Àr "tid", synkroniseringstiden Àr 60 sek.
307 LTFS17085I Plugin: Laddar âiokitâ-bandbackend.
307 LTFS17085I Plugin: Laddar "enhetlig" iosched-backend.
307 LTFS14095I StÀll in bandenhetens lÀge för att skriva var som helst för att undvika att kassetten matas ut.
307 LTFS30810I Ăppnar en enhet via iokit-drivrutinen (0).
307 LTFS30814I Leverantörs-ID Àr IBM.
307 LTFS30815I Produkt-ID Àr 'ULT3580-TD5'.
307 LTFS30816I Firmware-revisionen Àr H976.
307 LTFS30817I-enhetens serienummer Àr **********.
307 LTFS17160I Maximal blockstorlek för enheter Àr 1048576.
307 LTFS11330I Laddar patron.
307 LTFS30854I Skyddet för logiska block Àr inaktiverat.
307 LTFS11332I Laddningen lyckades.
307 LTFS17157I Ăndrar hĂ„rddiskinstĂ€llningen till skrivvar som helst-lĂ€ge.
307 LTFS11005I Montering av volymen.
307 LTFS30854I Skyddet för logiska block Àr inaktiverat.
307 LTFS17227I Bandattribut: Leverantör = IBM.
307 LTFS17227I Bandattribut: Programnamn = LTFS.
307 LTFS17227I Bandattribut: Programversion = 2.4.2.0.
307 LTFS17227I Bandattribut: Medium Etikett =.
307 LTFS17228I Bandattribut: Textlokaliserings-ID = 0x81.
307 LTFS17227I Bandattribut: Streckkod =.
307 LTFS17227I Bandattribut: Programformatversion = 2.4.0.
307 LTFS17228I Bandattribut: VolymlÄsstatus = 0x00.
307 LTFS17227I Bandattribut: Mediapoolnamn =.
307 LTFS14111I Den första installationen har slutförts.
307 LTFS14112I Anropa kommandot 'mount' för att kontrollera resultatet av den slutliga installationen.
307 LTFS14113I Angiven monteringspunkt listas om det lyckades.
Och hÀr Àr den, vÄrt band pÄ skrivbordet, med namnet Test(ltfs)! Det namnlösa bandet kommer att heta OSXFUSE Volume 0 (ltfs).
Nu kan du arbeta med det.

Generellt sett Àr det viktigt att komma ihÄg att det Àr lÀmpligt att inte missbruka visningen av innehÄllet i bandkataloger i Finder-fönster, eftersom detta Àr en otroligt dyr operation för LTFS, och det Àr bÀttre att arbeta med terminalkommandon, eller helt enkelt dumpa sÀkerhetskopian i bulk till bandet, som visas i fönstret ovan.
Förresten, det finns ett specialskrivet IBM-verktyg ltfs_copy och dess kloner, utformade för effektivare kopiering mellan band och disk, men hittills har författaren inte kunnat hitta dem i det offentliga rummet under en ytlig sökning.
Du kan avmontera bandet med kommandot:
umount /Volumes/LTFSeller bara slÀnga den i soporna.
Det finns faktiskt nÄgra grafiska skal i naturen för macOS för att göra dessa ÄtgÀrder enklare, men efter sÄdana perversioner, borde vi vara rÀdda för att skriva nÄgra rader i terminalen?
Som en bieffekt fÄr vi möjligheten att ansluta externa eSATA-enheter via en SAS/4*eSATA-kabel.

KĂ€lla: will.com
