Het Linux-commando — fdisk

click fraud protection

fdisk is een opdrachtregel partitie editor waarmee u de partities op de harde schijven van uw computer vanaf de opdrachtregel kunt maken, bewerken en beheren. Er zijn andere vergelijkbare tools, zoals cfdisk en parted, maar fdisk is gemakkelijk de meest universele en waarschijnlijk de eenvoudigste.

Zelfs als je niet van plan bent om het regelmatig te gebruiken, is het goed voor elke Linux-gebruiker om een ​​algemeen idee te hebben van hoe ermee te werken fdisk, omdat het een geweldige uitwijkmogelijkheid is wanneer grafische opties niet beschikbaar zijn, en het staat waarschijnlijk al op je Linux systeem.

Lege kantoorcabines
Jetta Productions/Blend Images/Getty Images

Een schijf partitioneren met fdisk

Deze gids leidt u door de basisprincipes van het partitioneren van een harde schijf met fdisk. Dit is een eenvoudige maar krachtige tool die veel opties biedt om uw schijven te beheren. Raadpleeg de technische handleiding aan het einde van de gids voor een vollediger technisch overzicht.

Door uw harde schijf te partitioneren, worden alle gegevens erop gewist. Maak een back-up van uw gegevens of werk met een lege schijf.

  1. Begin met het vinden van de locatie van uw harde schijf. Je kan het proberen:

    ls /dev. 

    Probeer er dan achter te komen welke schijf het is. Uw primaire schijf is waarschijnlijk /dev/sda, maar u moet er zeker van zijn.

    Je kunt ook in /etc/fstab kijken om te zien welke schijven waar zijn aangekoppeld. Als het u UUID-nummers geeft, kunt u zoeken naar de UUID van elke partitie en zien welke overeenkomen.

    sudo blkid /dev/sda1. 
  2. Maak vervolgens een lijst van de huidige partitietabel op de schijf met behulp van de -l vlag. Vervang "/dev/sda" door uw huidige schijf.

    sudo fdisk -l /dev/sda. 
    Linux fdisk lijst partities

    Als je met een lege schijf werkt, zou er niet veel moeten zijn.

  3. Voer de opdracht fdisk opnieuw uit. Deze keer zonder vlaggen. Dit brengt u naar de fdisk-console.

    sudo fdisk /dev/sda. 
    Linux fdisk-console
  4. Als je eenmaal in de fdisk-console bent, kun je aan de slag met je partities. Ten eerste, als u de partities zoals eerder wilt weergeven, kunt u de. invoeren P toets.

    P. 
    Linux fdisk lijst partities van console
  5. Gebruik dan de N toets om een ​​nieuwe partitie te maken.

    N. 
  6. De prompt zal dan vragen of u een primaire of uitgebreide partitie. Kiezen P(primair).

    P. 
    Linux fdisk partitietype instellen
  7. Kies een partitienummer. De standaard is 1, voor de eerste partitie, dus gebruik die.

    1. 
    Linux fdisk partitienummer instellen
  8. Vervolgens wordt u gevraagd om de eerste sector te kiezen. Maak je hier niet te veel zorgen over. Druk gewoon op Binnenkomen voor de standaard.

    Linux fdisk zet eerste sector
  9. Bij de volgende prompt kunt u de grootte van uw partitie kiezen. U kunt de partitiegrootte opgeven in megabytes (M) of gigabytes (G). Ervan uitgaande dat je een schijf instelt om Linux te installeren, is 512M een goede plek om te beginnen voor een opstartpartitie.

    +512M. 
    Linux fdisk partitiegrootte instellen
  10. Zodra dat is gebeurd, kunt u uw nieuwe partitie opnieuw bekijken met de P toets.

    Linux fdisk-partitie aangemaakt
  11. Als u van plan bent uw nieuwe partitie als opstartpartitie te gebruiken, moet u de opstartbare vlag aanzetten. Doe dat door op te drukken een. Voer vervolgens, indien gevraagd, het partitienummer in. Als dit de enige op je schijf is, is het 1.

    een
    1.
  12. Nu kunt u de andere partities op uw schijf maken. Begin met invoeren N opnieuw.

  13. druk op 1 opnieuw voor een primaire partitie.

  14. Gebruik het standaard partitienummer. Als je fris begint, is het 2.

  15. Gebruik ook de standaard eerste sector. Het start onmiddellijk na de vorige partitie. druk op Binnenkomen doorgaan.

  16. Kies opnieuw de grootte van uw schijf. Als je een rootpartitie met een aparte homepartitie wilt opzetten, zal iets als +20G goed werken. Als je de rest van de beschikbare ruimte wilt bezetten, druk je gewoon op Binnenkomen.

    +20G. 
    Linux fdisk resterende partities maken
  17. Herhaal deze stappen voor elke nieuwe partitie die u op de schijf wilt maken. Als je klaar bent, druk je op met wie om de partitietabel naar de schijf te schrijven.

    w. 
  18. Nu kunt u de opdracht mkfs gebruiken om de partities te formatteren voor gebruik. Voor de meeste Linux-systemen is het EXT4-bestandssysteem wat u zoekt, dus u kunt de volgende reeks opdrachten uitvoeren om uw partities in te stellen. Dit veronderstelt dat je aan /dev/sda werkt en dat je aparte home- en rootpartities instelt.

    sudo mkfs.ext4 /dev/sda1
    sudo mkfs.ext4 /dev/sda2
    sudo mkfs.ext4 /dev/sda3.
    Partities in Linux-indeling
  19. Uw nieuw gepartitioneerde en geformatteerde schijf is klaar voor gebruik. Als je het hebt gevolgd, kun je een Linux-distributie installeren en uitvoeren zoals: Arch Linux van de partities die u zojuist hebt gemaakt.

Fdisk-synopsis

Hier is een technisch overzicht van fdisk en zijn opties en mogelijkheden:

fdisk [-u] [-b sectorgrootte][-C cilinders] [-H hoofden] [-S sektenapparaat

fdisk -l [-u] [apparaat ...]

fdisk -s partitie ...

fdisk -v

Fdisk en partities

Harde schijven kunnen worden onderverdeeld in een of meer logische schijven, genaamd partities. Deze indeling wordt beschreven in de partitie tabel gevonden in sector 0 van de schijf.

In de BSD-wereld spreekt men van 'disk slices' en een 'disklabel'.

Linux heeft minstens één partitie nodig, namelijk voor zijn root bestandssysteem. Het kan wisselbestanden en/of wisselpartities gebruiken, maar dit laatste is efficiënter. Dus meestal wil je een tweede Linux-partitie als swappartitie.

Op Intel-compatibele hardware, de BIOS die het systeem opstart, heeft vaak alleen toegang tot de eerste 1024 cilinders van de schijf. Om deze reden maken mensen met grote schijven vaak een derde partitie, slechts een paar MB groot, meestal gemount op /boot, om de kernel-image op te slaan en een paar hulpbestanden die nodig zijn tijdens het opstarten, om ervoor te zorgen dat dit spul toegankelijk is voor het BIOS.

Er kunnen redenen zijn van beveiliging, gemak van beheer en back-up, of testen, om meer dan het minimum aantal partities te gebruiken.

Hoe Fdisk werkt

fdisk (in de eerste vorm van aanroep) is een menugestuurd programma voor het maken en manipuleren van partitietabellen. Het begrijpt partitietabellen van het DOS-type en schijflabels van het type BSD of SUN.

De apparaat is meestal een van de volgende:

  • /dev/hda /dev/hdb /dev/sda /dev/sdb
  • (/dev/hd[a-h] voor IDE-schijven, /dev/sd[a-p] voor SCSI-schijven, /dev/ed[a-d] voor ESDI-schijven, /dev/xd[ab] voor XT-schijven).

(Een apparaatnaam verwijst naar de hele schijf.)

De partitie is een apparaat naam gevolgd door een partitienummer. Bijvoorbeeld, /dev/hda1 is de eerste partitie op de eerste IDE-harde schijf in het systeem. Schijven kunnen maximaal 15 partities hebben. Zie ook/usr/src/linux/Documentation/devices.txt.

BSD/SUN-type schijflabel

Een BSD/SUN type disklabel kan 8 partities beschrijven, waarvan de derde een 'hele schijf' partitie zou moeten zijn. Start geen partitie die zijn eerste sector gebruikt (zoals een swappartitie) op cilinder 0, aangezien dat het disklabel vernietigt.

RIX/SGI-type disklabel

Een disklabel van het type IRIX/SGI kan 16 partities beschrijven, waarvan de elfde een volledige 'volume'-partitie zou moeten zijn, terwijl de negende zou moeten zijn met het label 'volumekop'. De volumeheader dekt ook de partitietabel, d.w.z. het begint bij blok nul en breidt zich standaard uit over vijf cilinders. De resterende ruimte in de volumeheader kan worden gebruikt door headerdirectory-items.

Er mogen geen partities overlappen met de volumeheader. Verander ook het type niet en maak er een bestandssysteem op, omdat je de partitietabel zult verliezen. Gebruik dit type label alleen bij het werken met Linux op IRIX/SGI-machines of IRIX/SGI-schijven onder Linux.

Partitietabel van het DOS-type

Een partitietabel van het DOS-type kan een onbeperkt aantal partities beschrijven. In sector 0 is ruimte voor de beschrijving van 4 partities ('primair' genoemd). Een daarvan kan een uitgebreide partitie zijn; dit is een box met logische partities, met descriptors die te vinden zijn in een gekoppelde lijst van sectoren, die elk voorafgaan aan de corresponderende logische partities. De vier primaire partities, al dan niet aanwezig, krijgen de nummers 1-4. Logische partities beginnen te nummeren vanaf 5.

In een partitietabel van het DOS-type worden de beginoffset en de grootte van elke partitie op twee manieren opgeslagen: als een absoluut aantal sectoren (gegeven in 32 bits) en als een Cilinders/Heads/Sectors triple (gegeven in 10+8+6 stukjes). De eerste is OK; met sectoren van 512 bytes werkt dit tot 2 TB. De laatste heeft twee verschillende problemen. Allereerst kunnen deze C/H/S-velden alleen worden ingevuld als het aantal koppen en het aantal sectoren per spoor bekend is.

Ten tweede, zelfs als we weten wat deze nummers zouden moeten zijn, volstaan ​​de 24 bits die beschikbaar zijn niet. DOS gebruikt alleen C/H/S, ramen gebruikt beide, Linux gebruikt nooit C/H/S.

Schijfgeometrie

Zo mogelijk, fdisk zal de schijfgeometrie automatisch verkrijgen. Dit is niet noodzakelijk de fysieke schijfgeometrie (moderne schijven hebben inderdaad niet echt zoiets als een fysieke geometrie, zeker niet iets dat kan worden beschreven in simplistische Cylinders/Heads/Sectors-vorm), maar is de schijfgeometrie die MS-DOS gebruikt voor de partitie tafel.

Gewoonlijk gaat alles standaard goed en zijn er geen problemen als Linux het enige systeem op de schijf is. Als de schijf echter moet worden gedeeld met andere besturingssystemen, is het vaak een goed idee om een ​​fdisk van een ander besturingssysteem ten minste één partitie te laten maken. Wanneer Linux opstart, kijkt het naar de partitietabel en probeert het af te leiden welke (nep)geometrie nodig is voor een goede samenwerking met andere systemen.

Consistentiecontrole

Telkens wanneer een partitietabel wordt afgedrukt, wordt een consistentiecontrole uitgevoerd op de partitietabelitems. Deze controle verifieert dat de fysieke en logische start- en eindpunten identiek zijn en dat de partitie begint en eindigt op een cilindergrens (behalve voor de eerste partitie).

Sommige versies van MS-DOS maken een eerste partitie die niet begint op een cilindergrens, maar op sector 2 van de eerste cilinder. Partities die in cilinder 1 beginnen, kunnen niet op een cilindergrens beginnen, maar dit zal waarschijnlijk geen problemen veroorzaken, tenzij je OS/2 op je computer hebt.

Een sync() en een BLKRRPART ioctl() (partitietabel opnieuw vanaf schijf lezen) worden uitgevoerd voordat de partitietabel is bijgewerkt. Lang geleden was het nodig om opnieuw op te starten na het gebruik van fdisk. Ik denk niet dat dit meer het geval is; inderdaad, te snel opnieuw opstarten kan leiden tot verlies van nog niet geschreven gegevens. Merk op dat zowel de kernel als de schijfhardware gegevens kunnen bufferen.

Dos 6.x-waarschuwing

De opdracht DOS 6.x FORMAT zoekt naar informatie in de eerste sector van het gegevensgebied van de partitie en behandelt deze informatie als betrouwbaarder dan de informatie in de partitietabel. DOS FORMAT verwacht dat DOS FDISK de eerste 512 bytes van het gegevensgebied van een partitie wist wanneer zich een wijziging in de grootte voordoet. DOS FORMAT zal naar deze extra informatie kijken, zelfs als de vlag /U wordt gegeven — we beschouwen dit als een fout in DOS FORMAT en DOS FDISK.

Waar het op neerkomt, is dat als u cfdisk of fdisk gebruikt om de grootte van een DOS-partitietabelitem te wijzigen, u ook moet gebruiken dd om de eerste 512 bytes van die partitie op nul te zetten voordat u DOS FORMAT gebruikt om de partitie te formatteren. Als u bijvoorbeeld cfdisk gebruikte om een ​​DOS-partitietabelinvoer voor /dev/hda1 te maken, dan (na het afsluiten van fdisk of cfdisk en het opnieuw opstarten Linux zodat de partitietabelinformatie geldig is) zou je het commando "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" gebruiken om de eerste 512 bytes van de partitie.

Wees uiterst voorzichtig als je de dd commando, aangezien een kleine typfout alle gegevens op uw schijf onbruikbaar kan maken.

Voor de beste resultaten moet u altijd een OS-specifiek partitietabelprogramma gebruiken. U moet bijvoorbeeld DOS-partities maken met het DOS FDISK-programma en: Linux partities met het programma Linux fdisk of Linux cfdisk.

fdisk-opties

-B sectorgrootte:Geef de sectorgrootte van de schijf op. Geldige waarden zijn 512, 1024 of 2048. (Recente kernels kennen de sectorgrootte. Gebruik dit alleen op oude kernels of om de ideeën van de kernel te negeren.)

-C cilinders:Geef het aantal cilinders van de schijf op. We hebben geen idee waarom iemand dat zou willen doen.

-H hoofden:Geef het aantal koppen van de schijf op. (Niet het fysieke nummer natuurlijk, maar het nummer dat wordt gebruikt voor partitietabellen.) Redelijke waarden zijn 255 en 16.

-S sekten:Specificeer het aantal sectoren per track van de schijf. (Niet het fysieke nummer natuurlijk, maar het nummer dat wordt gebruikt voor partitietabellen.) Een redelijke waarde is 63.

-l:Laat de partitietabellen voor de opgegeven apparaten zien en sluit af. Als er geen apparaten zijn vermeld, zijn die vermeld in /proc/partitions (als die bestaat) worden gebruikt.

-u:Geef bij het weergeven van partitietabellen de grootten in sectoren in plaats van cilinders.

-s partitie: De maat van de partitie (in blokken) wordt afgedrukt op de standaarduitvoer.

-v:Print versienummer van fdisk programmeren en afsluiten.