Een externe schijf krijgen is een uitstekende manier om oudere apparaten nieuw leven in te blazen of je in staat te stellen Linux te draaien op een machine die de interne harde schijf niet kan (of wil) vervangen. Stel dat je Linux wilt gebruiken in een dual-boot systeem, maar je hebt geen vrije ruimte op de harde schijf van je computer. Een oplossing is het gebruik van een "actieve" Linux-distributie zoals Knoppix, die direct vanaf een cd kan draaien. Deze methode werkt wel als je af en toe wordt gebruikt, maar heeft een aantal ernstige nadelen:
Je hebt nog steeds wat databestanden nodig voor permanentie. Als je alleen zeer kleine bestanden gebruikt, kun je floppy disks gebruiken; Voor middelgrote bestanden kan een USB-stick voldoende zijn, maar geen van hen is ideaal.
Bij het gebruik van "actieve" cd's is het erg moeilijk of zelfs onmogelijk om je eigen applicaties te installeren of bestaande aan te passen.
Het gebruik van een actieve distributie vertraagt de prestaties, vooral wanneer het opstarten van alle apparaten detecteert - maar ook tijdens runtime (omdat alles vanaf een cd geladen moet worden, wat meestal veel langzamer is dan laden vanaf een harde schijf).
Natuurlijk zijn er andere opties. Je kunt bijvoorbeeld andere ingebouwde schijven kopen en daar Linux in installeren. Maar het is gebruikelijk dat de machine waarschijnlijk geen schijfbays beschikbaar heeft (vooral bij laptops, die meestal maar één interne harde schijf toelaten).
Je kunt ook een grotere schijf gebruiken in plaats van je huidige en Linux installeren in de extra ruimte die je ervan krijgt. Dit is echter een tijdrovende optie omdat je het bestaande besturingssysteem opnieuw moet installeren op de nieuwe schijf, alle applicaties opnieuw moet installeren en configureren, en alle data moet herstellen.
Een betere oplossing is om een externe harde schijf te kopen en Linux daarop te installeren. Hierdoor kun je alleen externe schijven aansluiten als je Linux wilt gebruiken zonder je bestaande hardware en software te wijzigen.
Opties voor verwisselbare aandrijvingen
Het scala aan mobiele apparaten waarmee Linux geïnstalleerd kan worden, varieert van floppy disks tot USB-flashapparaten, USB/FireWire-harde schijven en meer.
Hoewel het waar is dat Linux kan worden geïnstalleerd in apparaten met kleine capaciteit zoals 1,44MB floppy disks of 32MB USB-disks, zijn dit vaak (noodzakelijkerwijs) gespecialiseerde, verkleinde distributies, bijvoorbeeld om beschadigde installaties te redden.
Externe harde schijven bieden echter de meeste flexibiliteit voor een algemene Linux-distributie tegen een redelijke prijs.
Externe schijven komen van veel verschillende fabrikanten (Maxtor, Western Digital, enz.) en kunnen in verschillende maten verkrijgbaar zijn. Deze schijven bevatten allemaal een externe kast die standaard 3-1/2" of 2-1/2" IDE-schijven bevat. Deze schijven zijn meestal via USB of IEEE1394 (FireWire) op de computer aangesloten.
Er zijn twee hoofdversies van USB, 1.1 en 2.0. Versie 1.1 heeft een maximale overdrachtssnelheid van 12 Mbit/s (megabits per seconde), terwijl versie 2.0 overdrachtssnelheden tot 480 Mbit/s ondersteunt. Hoewel de meeste 2.0-compatibele schijven achterwaarts compatibel zijn met 1.1, is het over het algemeen het beste om 1.1 te vermijden tenzij je geen andere keuze hebt (omdat het langzamer is).
De FireWire-standaard definieert ook veel verschillende mogelijke snelheden, maar in werkelijkheid bedoelen mensen altijd "FireWire400", die transmissies tot 400 Mbit/s ondersteunt.
Qua snelheid is er niet veel keuze tussen USB 2.0 en FireWire: hoewel USB 2.0 hogere snelheden rapporteert, zijn ze eigenlijk vergelijkbaar vanwege de verschillen. Als je computer beide heeft, is het misschien beter om USB te gebruiken in plaats van FireWire (ik leg later uit waarom), maar als je alleen FireWire hebt, kun je natuurlijk alleen FireWire kiezen. Voor maximale flexibiliteit kies je uit een groot aantal schijven die USB 2.0 en FireWire ondersteunen (bijvoorbeeld degene die ik later in dit artikel zal gebruiken).
FireWire- en USB 2.0-kaarten zijn goedkoop voor computers die niet de benodigde poorten hebben, PCI (voor desktops) en PCMCIA (voor laptops): bijvoorbeeld, de PCMCIA FireWire-kaart die ik later in dit artikel gebruikte was ongeveer 10GBP (minder dan $20).
Om dit artikel af te maken, heb ik een externe schijfbox van 5-1/4" gekocht. Dit is een zeer flexibele hanger die niet met een enkele drive wordt geleverd en in elk standaard IDE-apparaat past, inclusief 3-1/2" harde schijven en 5-1/4" IDE-apparaten zoals CD-RW/DVD-RW-stations. De behuizing heeft USB 2.0 en FireWire-connectiviteit.
Om de plaatdoos aan te sluiten op mijn IBM Thinkpad T30 laptop, heb ik ook een PCMCIA FireWire-kaart gekocht (de ingebouwde USB-poort ondersteunt alleen USB 1.1).
Zowel de cartridge als de FireWire-kaart zijn goedkoper (respectievelijk 50GBP en 10GBP).
Voor testdoeleinden heb ik de platterbox aangesloten op de 13GB 3-1/2" IDE-schijf die ik had voorbereid - in het echte gebruik zou ik grotere schijven kopen, die nu ook erg goedkoop zijn (ongeveer 50GBP per GB!). )
Linux-ondersteuning
Zoals je zou verwachten, is de Linux-ondersteuning voor deze trays echt goed. Elk apparaat dat voldoet aan de SBP-standaard (Serial Bus Protocol) voor "apparaten met groot volume" kan eenvoudig worden gebruikt met Linux.
In het algemeen moet de kernel om ondersteuning voor deze apparaten mogelijk te maken veel ondersteunen (direct gecompileerd of via modules).
Voor zowel USB als FireWire wordt SBP-apparaatondersteuning geïmplementeerd via SCSI-emulatie - dat wil zeggen, apparaten worden op Linux weergegeven alsof het SCSI-schijven zijn. Dit is een veelgebruikte manier om opslagapparaten in Linux te abstraheren (bijvoorbeeld worden IDE CD/DVD-drives ook vaak aangesloten met SCSI-emulatie). Daarom is de volgende kernelondersteuning vereist:
* SCSI-ondersteuning
* SCSI-simulatie
* SCSI-schijfondersteuning
Daarnaast kan, afhankelijk van de verbindingsmethode, de volgende ondersteuning vereist zijn:
Voor FireWire:
IEEE1394 ondersteuning
OHCI1394 ondersteuning
RAW1394 ondersteuning
SBP-2 ondersteund
Voor USB:
(Host) USB-ondersteuning
OHCI-ondersteuning
UHCI-ondersteuning
USB-massaopslagondersteuning
Natuurlijk moet je andere hardware (grafische kaart, enz.) volledig normaal ondersteunen, en afhankelijk van je daadwerkelijke hardwaresituatie heb je misschien nog andere modules nodig.
Ik gebruik bijvoorbeeld een PCMCIA (cardbus) FireWire-kaart, dus ik moet toevoegen:
PCMCIA-ondersteuning
Cardbus-ondersteuning
Installatie
Nu we een extern apparaat hebben, gaan we Linux erin installeren.
De makkelijkste manier om Linux nu te installeren (naar mijn mening natuurlijk) is door alle hardware aan te sluiten (hierbij betekent dat het aansluiten van de PCMCIA FireWire-kaart, het aansluiten van de FireWire-kabel op de PCMCIA-kaart en de schijf, en het aanzetten van de aan/uit-schakelaar van de schijf); Start vervolgens de computer op met de installatie-cd van de door jou gekozen distributie.
De distro die ik koos was Gentoo (zie referenties voor gerelateerde links), dus gebruikte ik de nieuwste "Universal" x86 Live CD (2004.1). Andere distributies zouden meer of minder stappen moeten vereisen dan hier beschreven.
Zodra je met de installatie-cd was opgestart, had hij je drive moeten herkennen, als je geluk hebt. De schijf zou als een schijf moeten verschijnen onder /dev/sdX, waarbij X een kleine letter is die met "a" begint. In mijn systeem wordt de externe schijf gedetecteerd als /dev/sda, maar als je andere SCSI-schijven hebt (gesimuleerde SCSI-schijven), verandert dit; In dat geval kan het /dev/sdb of een andere letter zijn. Als de schijf niet automatisch wordt gedetecteerd, kunnen verdere stappen nodig zijn – bijvoorbeeld moet je FireWire of PCMCIA inschakelen via de opstartoptie, of je moet handmatig kernelmodules laden of iets dergelijks (zie de referentie voor een link naar de probleemoplossingsgids).
Zodra de schijf is geïdentificeerd, zou deze inderdaad als een interne harde schijf moeten functioneren zodat de rest van de installatie kan worden overwogen; Je zou het dus moeten kunnen partitioneren wanneer nodig en Linux zoals gewoonlijk installeren.
Een waarschuwing: wees voorzichtig bij het kiezen waar je de bootloader installeert (meestal GRUB of LILO) - ik raad aan het niet in een Master Boot Record (MBR) te installeren, wat meestal de standaard is. In plaats daarvan moet het worden geïnstalleerd in de root-partitie (of bootpartitie, als je een aparte bootloader gebruikt) van de externe schijf.
Nu we Linux in het apparaat hebben geïnstalleerd, laten we Linux opstarten. Hier zijn enkele tips om te beginnen.
Richtlijnen
Voordat we het hebben over het opstarten van een nieuwe schijf, zijn er enkele bootloader-theorieën om te begrijpen.
De bootloader wordt meestal geïnstalleerd in de MBR van de eerste harde schijf van de computer. Wanneer de bootloader wordt aangeroepen (de BIOS voert de code automatisch uit in de MBR), toont deze meestal een menu met besturingssystemen die kunnen opstarten. Selecteer een bepaalde OS-boot.
Er zijn twee dingen om op te merken over dit scenario:
* OS-selectiemenu (meestal) geladen vanaf de schijf.
* Om het besturingssysteem op te starten, moet de bootloader de relevante kernel van de schijf lezen.
Aangezien het bovenstaande gebeurt voordat het besturingssysteem wordt geladen, betekent dit dat alle schijflezingen moeten plaatsvinden op de manier waarop de BIOS-aanroepen worden uitgevoerd. Dit brengt ernstige problemen met zich mee: bijvoorbeeld om de schijf direct op te starten, moet je BIOS schijven ondersteunen die via FireWire of USB zijn aangesloten. Dit wordt vaak gezien als een BIOS-optie om vanaf dit type schijven op te starten. FireWire BIOS-ondersteuning is momenteel zeldzaam, maar USB-ondersteuning wordt steeds gebruikelijker. Dus als je USB gebruikt in een relatief nieuwe computer, zou je de schijf direct in Linux moeten kunnen opstarten.
Na het installeren van GRUB in de MBR van een externe schijf kan ik de schijf direct opstarten wanneer hij via USB is aangesloten. Bij het opstarten gaat de aangesloten schijf gewoon in het BIOS-installatieprogramma. De externe schijf zal eruitzien als een normale harde schijf: verplaats de schijf zodat deze vóór de interne schijf in de opstartvolgorde komt.
Ik kan ook de bootloader installeren in de MBR van de interne schijf en die gebruiken om de USB-stick op te starten (op dat moment verschijnt hij als hd1 in GRUB in GRUB). Als je FireWire gebruikt, is er een kans dat de BIOS de schijf niet direct kan opstarten en dat er extra acties nodig zijn.
Gelukkig, vanwege de flexibiliteit van Linux, als je niet direct kunt opstarten (met een PCMCIA FireWire-kaart, dat is zeker mijn geval!). ), zullen er vrij eenvoudige oplossingen zijn. De eerste opstartstappen kunnen worden uitgevoerd vanaf een ondersteund apparaat zoals een floppy disk, cd, USB-stick of een kleine partitie op de primaire schijf, waarna aanvullende bewerkingen kunnen worden uitgevoerd met de externe schijf.
Bouw een bootimage
Bootstrapping kan op twee manieren worden uitgevoerd:
* Ééntraps geleiding
De kernel start, installeert het root-bestandssysteem en gaat verder met initialisatie door een initialisatiescript aan te roepen (meestal /sbin/init).
* Tweefasige (initiatief) bootstrapping
De kernel start op, installeert de initiële RAM-schijf (initrd) en voert verdere aanpasbare initialisatie uit, en vervolgens het root-bestandssysteem installeren en doorgaan met initialisatie (meestal ook door /sbin/init aan te roepen). Beide methoden hebben hun eigen voor- en nadelen.
Een fase van begeleiding
Om eenstapsopstart te gebruiken, moeten we een kernel bouwen die alle drivers bevat die nodig zijn om het ingebouwde rootbestandssysteem te installeren
|