Linux-kommandoen — fdisk

fdisk er en kommandolinje skillevæg editor, der giver dig mulighed for at oprette, redigere og administrere partitionerne på din computers harddiske fra kommandolinjen. Der er andre lignende værktøjer, såsom cfdisk og parted, men fdisk er let det mest universelle og nok det enkleste.

Selvom du ikke planlægger at bruge det regelmæssigt, er det godt for enhver Linux-bruger at have en generel idé om, hvordan man arbejder med fdisk, da det er et godt alternativ, når grafiske muligheder ikke er tilgængelige, og det er sandsynligvis allerede på din Linux system.

Tomme kontorkabiner
Jetta Productions/Blend Images/Getty Images

Partitioner et drev med fdisk

Denne guide vil lede dig gennem det grundlæggende i at partitionere en harddisk med fdisk. Dette er et enkelt, men kraftfuldt værktøj, der tilbyder en masse muligheder for at administrere dine drev. For en mere fuldstændig teknisk opdeling henvises til den tekniske manual i slutningen af ​​vejledningen.

Partitionering af din harddisk vil slette alle data på den. Sørg for at sikkerhedskopiere dine data eller arbejde med et tomt drev.

  1. Start med at finde ud af din placering harddisk. Du kan prøve:

    ls /dev. 

    Prøv derefter at finde ud af, hvilket drev det er. Dit primære drev er sandsynligvis /dev/sda, men du skal sørge for.

    Du kan også tage et kig på /etc/fstab for at se, hvilke drev der er monteret hvor. Hvis det giver dig UUID-numre, kan du søge efter hver partitions UUID og se, hvilke der matcher.

    sudo blkid /dev/sda1. 
  2. Liste derefter den aktuelle partitionstabel på drevet ved hjælp af -l flag. Erstat "/dev/sda" med dit faktiske drev.

    sudo fdisk -l /dev/sda. 
    Linux fdisk liste partitioner

    Hvis du arbejder med et tomt drev, burde der ikke være meget der.

  3. Kør kommandoen fdisk igen. Denne gang uden flag. Dette bringer dig ind i fdisk-konsollen.

    sudo fdisk /dev/sda. 
    Linux fdisk konsol
  4. Når du er i fdisk-konsollen, kan du begynde at arbejde med dine partitioner. For det første, hvis du vil vise partitionerne som før, kan du indtaste s nøgle.

    s. 
    Linux fdisk liste partitioner fra konsollen
  5. Brug derefter n tasten for at oprette en ny partition.

    n. 
  6. Prompten vil så spørge, om du vil lave en primær eller udvidet skillevæg. Vælge s(primær).

    s. 
    Linux fdisk sæt partitionstype
  7. Vælg et partitionsnummer. Standard er 1, til den første partition, så brug den.

    1. 
    Linux fdisk sæt partitionsnummer
  8. Derefter bliver du bedt om at vælge den første sektor. Du skal ikke bekymre dig for meget om dette. Bare tryk Gå ind for standard.

    Linux fdisk sæt første sektor
  9. Den næste prompt giver dig mulighed for at vælge størrelsen på din partition. Du kan angive partitionsstørrelsen i enten megabyte (M) eller gigabyte (G). Forudsat at du opsætter et drev til at installere Linux, er 512M et godt sted at starte for en boot-partition.

    +512 mio. 
    Linux fdisk sæt partitionsstørrelse
  10. Når det er gjort, kan du se din nye partition igen med s nøgle.

    Linux fdisk-partition oprettet
  11. Hvis du planlægger at bruge din nye partition som en boot-partition, skal du slå det bootbare flag til. Gør det ved at trykke på -en. Indtast derefter partitionsnummeret, hvis du bliver bedt om det. Hvis dette er den eneste på dit drev, er det det 1.

    -en
    1.
  12. Nu kan du oprette de andre partitioner på dit drev. Start med at indtaste n igen.

  13. Trykke 1 igen for en primær partition.

  14. Brug standardpartitionsnummeret. Hvis du starter på en frisk, er det 2.

  15. Brug også standard første sektor. Det starter umiddelbart efter den forrige partition. Trykke Gå ind at fortsætte.

  16. Endnu en gang skal du vælge størrelsen på dit drev. Hvis du ønsker at oprette en rodpartition med en separat hjemmepartition, vil noget som +20G fungere godt. Hvis du vil optage resten af ​​den ledige plads, skal du bare trykke Gå ind.

    +20G. 
    Linux fdisk oprette resterende partitioner
  17. Gentag disse trin for hver ny partition, du vil oprette på drevet. Tryk på, når du er færdig w at skrive partitionstabellen til drevet.

    w. 
  18. Nu kan du bruge kommandoen mkfs til at formatere partitionerne til brug. For de fleste Linux-systemer er EXT4-filsystemet det, du ønsker, så du kan køre følgende sæt kommandoer for at opsætte dine partitioner. Dette forudsætter, at du arbejder på /dev/sda, og at du opsætter separate hjemme- og rodpartitioner.

    sudo mkfs.ext4 /dev/sda1
    sudo mkfs.ext4 /dev/sda2
    sudo mkfs.ext4 /dev/sda3.
    Linux-format partitioner
  19. Dit nyligt opdelte og formaterede drev er klar til brug. Hvis du har fulgt med, kan du installere og køre en Linux-distribution som f.eks Arch Linux fra de partitioner, du lige har oprettet.

Fdisk synopsis

Her er en teknisk oversigt over fdisk og dens muligheder og muligheder:

fdisk [-u] [-b sektorstørrelse][-C cyls] [-H hoveder] [-S sekterenhed

fdisk -l [-u] [enhed...]

fdisk -s partition...

fdisk -v

Fdisk og partitioner

Harddiske kan opdeles i en eller flere logiske diske kaldet skillevægge. Denne opdeling er beskrevet i partitionstabel fundet i sektor 0 på disken.

I BSD-verdenen taler man om 'diskslices' og en 'disklabel'.

Linux har brug for mindst én partition, nemlig dens rod filsystem. Det kan bruge swap-filer og/eller swap-partitioner, men sidstnævnte er mere effektivt. Så normalt vil man have en anden Linux-partition dedikeret som en swap-partition.

På Intel-kompatibel hardware er BIOS som starter, kan systemet ofte kun få adgang til de første 1024 cylindre på disken. Af denne grund opretter folk med store diske ofte en tredje partition, kun et par MB stor, typisk monteret på /boot, for at gemme kernebilledet og nogle få hjælpefiler, der er nødvendige ved opstart, for at sikre, at disse ting er tilgængelige for BIOS.

Der kan være årsager til sikkerhed, nem administration og backup eller testning for at bruge mere end minimumsantallet af partitioner.

Hvordan Fdisk virker

fdisk (i den første form for invokation) er et menudrevet program til oprettelse og manipulation af partitionstabeller. Det forstår DOS-type partitionstabeller og BSD eller SUN-type disklabels.

Det enhed er normalt en af ​​følgende:

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

(Et enhedsnavn henviser til hele disken.)

Det skillevæg er en enhed navn efterfulgt af et partitionsnummer. For eksempel, /dev/hda1 er den første partition på den første IDE-harddisk i systemet. Diske kan have op til 15 partitioner. Se også/usr/src/linux/Documentation/devices.txt.

BSD/SUN-type disklabel

En disklabel af typen BSD/SUN kan beskrive 8 partitioner, hvoraf den tredje skal være en 'hel disk' partition. Start ikke en partition, der rent faktisk bruger sin første sektor (som en swap-partition) ved cylinder 0, da det vil ødelægge disketiketten.

RIX/SGI-type disklabel

En IRIX/SGI type disklabel kan beskrive 16 partitioner, hvoraf den ellevte skal være en hel 'volumen' partition, mens den niende skal være mærket 'volumenoverskrift'. Volumenoverskriften vil også dække partitionstabellen, dvs. den starter ved blok nul og strækker sig som standard over fem cylindre. Den resterende plads i volumenhovedet kan bruges af hovedbiblioteksposter.

Ingen partitioner må overlappe lydstyrkehovedet. Du skal heller ikke ændre dens type og lave noget filsystem på den, da du vil miste partitionstabellen. Brug kun denne type etiket, når du arbejder med Linux på IRIX/SGI-maskiner eller IRIX/SGI-diske under Linux.

DOS-type partitionstabel

En partitionstabel af DOS-typen kan beskrive et ubegrænset antal partitioner. I sektor 0 er der plads til beskrivelsen af ​​4 partitioner (kaldet 'primær'). En af disse kan være en udvidet partition; dette er en boks med logiske partitioner, med beskrivelser fundet i en sammenkædet liste over sektorer, der hver går forud for de tilsvarende logiske partitioner. De fire primære partitioner, til stede eller ej, får tallene 1-4. Logiske partitioner begynder at nummerere fra 5.

I en partitionstabel af DOS-typen gemmes startoffset og størrelsen af ​​hver partition på to måder: som et absolut antal sektorer (givet i 32 bit) og som en cylindre/hoveder/sektor tripel (givet i 10+8+6 bits). Førstnævnte er OK; med 512-byte sektorer vil dette fungere op til 2 TB. Sidstnævnte har to forskellige problemer. Først og fremmest kan disse C/H/S-felter kun udfyldes, når antallet af hoveder og antallet af sektorer pr. spor er kendt.

For det andet, selvom vi ved, hvad disse tal skal være, er de 24 bit, der er til rådighed, ikke tilstrækkelige. DOS bruger kun C/H/S, Windows bruger begge, Linux bruger aldrig C/H/S.

Disk geometri

Hvis det er muligt, fdisk henter diskens geometri automatisk. Dette er ikke nødvendigvis den fysiske diskgeometri (ja, moderne diske har faktisk ikke noget som en fysisk geometri, bestemt ikke noget, der kan beskrives i forenklet form med cylindere/hoveder/sektorer), men er den diskgeometri, som MS-DOS bruger til partitionen bord.

Normalt går alt godt som standard, og der er ingen problemer, hvis Linux er det eneste system på disken. Men hvis disken skal deles med andre styresystemer, er det ofte en god idé at lade en fdisk fra et andet styresystem lave mindst én partition. Når Linux starter, kigger den på partitionstabellen og forsøger at udlede, hvilken (falsk) geometri der kræves for et godt samarbejde med andre systemer.

Konsistenstjek

Hver gang en partitionstabel udskrives, udføres en konsistenskontrol af partitionstabelposterne. Denne kontrol verificerer, at de fysiske og logiske start- og slutpunkter er identiske, og at partitionen starter og slutter på en cylindergrænse (undtagen den første partition).

Nogle versioner af MS-DOS opretter en første partition, der ikke begynder på en cylindergrænse, men på sektor 2 af den første cylinder. Partitioner, der begynder i cylinder 1, kan ikke begynde på en cylindergrænse, men det vil næppe forårsage vanskeligheder, medmindre du har OS/2 på din maskine.

En sync() og en BLKRRPART ioctl() (genlæs partitionstabel fra disk) udføres før afslutning, når partitionstabellen er blevet opdateret. For længe siden plejede det at være nødvendigt at genstarte efter brug af fdisk. Jeg tror ikke, det er tilfældet længere; ja, genstart for hurtigt kan forårsage tab af endnu ikke-skrevne data. Bemærk, at både kernen og diskhardwaren kan buffere data.

Dos 6.x Advarsel

DOS 6.x FORMAT-kommandoen leder efter nogle oplysninger i den første sektor af partitionens dataområde og behandler disse oplysninger som mere pålidelige end oplysningerne i partitionstabellen. DOS FORMAT forventer, at DOS FDISK rydder de første 512 bytes af dataområdet på en partition, når der sker en størrelsesændring. DOS FORMAT vil se på denne ekstra information, selvom /U flaget er givet — vi betragter dette som en fejl i DOS FORMAT og DOS FDISK.

Den nederste linje er, at hvis du bruger cfdisk eller fdisk til at ændre størrelsen på en DOS-partitionstabelpost, så skal du også bruge dd at nulstille de første 512 bytes af den partition, før du bruger DOS FORMAT til at formatere partitionen. For eksempel, hvis du brugte cfdisk til at lave en DOS-partitionstabelindgang for /dev/hda1, så (efter at have afsluttet fdisk eller cfdisk og genstartet Linux, så partitionstabelinformationen er gyldig), ville du bruge kommandoen "dd if=/dev/nul af=/dev/hda1 bs=512 count=1" for at nulstille første 512 bytes af skillevæggen.

Vær yderst forsigtig hvis du bruger dd kommando, da en lille tastefejl kan gøre alle data på din disk ubrugelige.

For de bedste resultater bør du altid bruge et OS-specifikt partitionstabelprogram. For eksempel bør du lave DOS-partitioner med DOS FDISK-programmet og Linux partitioner med Linux fdisk- eller Linux cfdisk-programmet.

fdisk indstillinger

-b sektorstørrelse: Angiv sektorstørrelsen på disken. Gyldige værdier er 512, 1024 eller 2048. (Seneste kerner kender sektorstørrelsen. Brug dette kun på gamle kerner eller for at tilsidesætte kernens ideer.)

-C cyls: Angiv antallet af cylindre på disken. Vi aner ikke, hvorfor nogen vil gøre det.

-H hoveder: Angiv antallet af hoveder på disken. (Ikke det fysiske nummer, selvfølgelig, men det tal, der bruges til partitionstabeller.) Rimelige værdier er 255 og 16.

-S sekter: Angiv antallet af sektorer pr. spor på disken. (Ikke det fysiske nummer, selvfølgelig, men det tal, der bruges til partitionstabeller.) En rimelig værdi er 63.

-l: Angiv partitionstabellerne for de angivne enheder, og afslut derefter. Hvis der ikke er angivet nogen enheder, er de nævnt i /proc/partitions (hvis det findes) bruges.

-u:Når du angiver partitionstabeller, skal du angive størrelser i sektorer i stedet for cylindre.

-s skillevæg: Det størrelse af partitionen (i blokke) udskrives på standardoutputtet.

-v: Udskriv versionsnummer af fdisk program og afslut.