Linux-kommandoen — fdisk

fdisk er en kommandolinje skillevegg editor som lar deg opprette, redigere og administrere partisjonene på datamaskinens harddisker fra kommandolinjen. Det finnes andre lignende verktøy, som cfdisk og parted, men fdisk er lett det mest universelle og sannsynligvis det enkleste.

Selv om du ikke planlegger å bruke det regelmessig, er det bra for enhver Linux-bruker å ha en generell ide om hvordan man jobber med fdisk, siden det er et godt alternativ når grafiske alternativer ikke er tilgjengelige, og det er sannsynligvis allerede på din Linux system.

Tomme kontoravlukker
Jetta Productions/Blend Images/Getty Images

Partisjoner en stasjon med fdisk

Denne veiledningen skal lede deg gjennom det grunnleggende om partisjonering av en harddisk med fdisk. Dette er et enkelt, men kraftig verktøy som tilbyr mange alternativer for å administrere stasjonene dine. For en mer fullstendig teknisk oversikt, se den tekniske håndboken på slutten av veiledningen.

Partisjonering av harddisken vil slette alle data på den. Sørg for å sikkerhetskopiere dataene dine eller arbeid med en tom stasjon.

  1. Start med å finne ut hvor du befinner deg harddisk. Du kan prøve:

    ls /dev. 

    Prøv deretter å finne ut hvilken stasjon det er. Din primære stasjon er sannsynligvis /dev/sda, men du må forsikre deg om det.

    Du kan også ta en titt på /etc/fstab for å se hvilke stasjoner som er montert hvor. Hvis den gir deg UUID-nummer, kan du søke etter hver partisjons UUID, og ​​se hvilke som samsvarer.

    sudo blkid /dev/sda1. 
  2. List deretter opp den gjeldende partisjonstabellen på stasjonen ved å bruke -l flagg. Erstatt "/dev/sda" med din faktiske stasjon.

    sudo fdisk -l /dev/sda. 
    Linux fdisk listepartisjoner

    Hvis du jobber med en tom stasjon, bør det ikke være mye der.

  3. Kjør kommandoen fdisk igjen. Denne gangen uten noen flagg. Dette vil bringe deg inn i fdisk-konsollen.

    sudo fdisk /dev/sda. 
    Linux fdisk-konsoll
  4. Når du er i fdisk-konsollen, kan du begynne å jobbe med partisjonene dine. For det første, hvis du vil liste opp partisjonene som før, kan du gå inn i s nøkkel.

    s. 
    Linux fdisk liste partisjoner fra konsollen
  5. Deretter bruker du n nøkkel for å opprette en ny partisjon.

    n. 
  6. Spørringen vil da spørre om du vil lage en primær eller utvidet partisjon. Velge s(hoved).

    s. 
    Linux fdisk sett partisjonstype
  7. Velg et partisjonsnummer. Standard er 1, for den første partisjonen, så bruk den.

    1. 
    Linux fdisk sett partisjonsnummer
  8. Deretter blir du bedt om å velge den første sektoren. Ikke bekymre deg for mye om dette. Bare trykk Tast inn for standard.

    Linux fdisk satt første sektor
  9. Den neste ledeteksten lar deg velge størrelsen på partisjonen din. Du kan spesifisere partisjonsstørrelsen i enten megabyte (M) eller gigabyte (G). Forutsatt at du setter opp en stasjon for å installere Linux, er 512M et godt sted å starte for en oppstartspartisjon.

    +512M. 
    Linux fdisk satt partisjonsstørrelse
  10. Når det er gjort, kan du se den nye partisjonen din igjen med s nøkkel.

    Linux fdisk-partisjon opprettet
  11. Hvis du planlegger å bruke den nye partisjonen som en oppstartspartisjon, må du slå på det oppstartbare flagget. Gjør det ved å trykke en. Deretter, hvis du blir spurt, skriv inn partisjonsnummeret. Hvis dette er den eneste på stasjonen din, er det det 1.

    en
    1.
  12. Nå kan du opprette de andre partisjonene på stasjonen. Start med å gå inn n en gang til.

  13. trykk 1 igjen for en primær partisjon.

  14. Bruk standard partisjonsnummer. Hvis du begynner på nytt, er det det 2.

  15. Bruk standard første sektor også. Den starter umiddelbart etter forrige partisjon. trykk Tast inn å fortsette.

  16. Nok en gang, velg størrelsen på stasjonen. Hvis du ønsker å sette opp en rotpartisjon med en separat hjemmepartisjon, vil noe sånt som +20G fungere bra. Hvis du vil okkupere resten av den tilgjengelige plassen, er det bare å trykke Tast inn.

    +20G. 
    Linux fdisk opprette gjenværende partisjoner
  17. Gjenta disse trinnene for hver nye partisjon du vil opprette på stasjonen. Når du er ferdig, trykk w for å skrive partisjonstabellen til stasjonen.

    w. 
  18. Nå kan du bruke mkfs-kommandoen til å formatere partisjonene for bruk. For de fleste Linux-systemer er EXT4-filsystemet det du vil ha, så du kan kjøre følgende sett med kommandoer for å sette opp partisjonene dine. Dette forutsetter at du jobber med /dev/sda og at du setter opp separate hjemme- og rotpartisjoner.

    sudo mkfs.ext4 /dev/sda1
    sudo mkfs.ext4 /dev/sda2
    sudo mkfs.ext4 /dev/sda3.
    Linux-format partisjoner
  19. Din nylig partisjonerte og formaterte stasjon er klar til bruk. Hvis du har fulgt med, kan du installere og kjøre en Linux-distribusjon som Arch Linux av partisjonene du nettopp opprettet.

Fdisk synopsis

Her er en teknisk oversikt over fdisk og dens alternativer og muligheter:

fdisk [-u] [-b sektorstørrelse][-C cyls] [-H hoder] [-S sekterenhet

fdisk -l [-u] [enhet ...]

fdisk -s partisjon...

fdisk -v

Fdisk og partisjoner

Harddisker kan deles inn i en eller flere logiske disker kalt partisjoner. Denne inndelingen er beskrevet i partisjonstabell funnet i sektor 0 på disken.

I BSD-verdenen snakker man om 'diskslicer' og en 'disklabel'.

Linux trenger minst én partisjon, nemlig roten filsystem. Den kan bruke swap-filer og/eller swap-partisjoner, men sistnevnte er mer effektiv. Så vanligvis vil man ha en andre Linux-partisjon dedikert som en swap-partisjon.

På Intel-kompatibel maskinvare, BIOS som starter opp, kan systemet ofte bare få tilgang til de første 1024 sylindrene på disken. Av denne grunn lager folk med store disker ofte en tredje partisjon, bare noen få MB stor, vanligvis montert på /boot, for å lagre kjernebildet og noen få hjelpefiler som trengs ved oppstart, for å sikre at disse tingene er tilgjengelige for BIOS.

Det kan være årsaker til sikkerhet, enkel administrasjon og sikkerhetskopiering, eller testing, for å bruke mer enn minimumsantallet av partisjoner.

Hvordan Fdisk fungerer

fdisk (i den første formen for påkalling) er et menydrevet program for oppretting og manipulering av partisjonstabeller. Den forstår DOS-type partisjonstabeller og BSD eller SUN-type disketiketter.

De enhet er vanligvis en av følgende:

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

(Et enhetsnavn refererer til hele disken.)

De skillevegg er en enhet navn etterfulgt av et partisjonsnummer. For eksempel, /dev/hda1 er den første partisjonen på den første IDE-harddisken i systemet. Disker kan ha opptil 15 partisjoner. Se også/usr/src/linux/Documentation/devices.txt.

BSD/SUN-type Disklabel

En disklabel av typen BSD/SUN kan beskrive 8 partisjoner, hvorav den tredje skal være en "hel disk"-partisjon. Ikke start en partisjon som faktisk bruker sin første sektor (som en swap-partisjon) på sylinder 0, siden det vil ødelegge disketiketten.

RIX/SGI-Type Disklabel

En IRIX/SGI type disklabel kan beskrive 16 partisjoner, hvorav den ellevte skal være en hel 'volum' partisjon, mens den niende skal være merket "volumoverskrift". Volumoverskriften vil også dekke partisjonstabellen, det vil si at den starter på blokk null og strekker seg som standard over fem sylindre. Den gjenværende plassen i volumoverskriften kan brukes av oppføringer i overskriftskatalogen.

Ingen partisjoner kan overlappe med volumoverskriften. Ikke endre type og lag et filsystem på den, siden du vil miste partisjonstabellen. Bruk denne typen etikett bare når du arbeider med Linux på IRIX/SGI-maskiner eller IRIX/SGI-disker under Linux.

DOS-type partisjonstabell

En partisjonstabell av DOS-typen kan beskrive et ubegrenset antall partisjoner. I sektor 0 er det rom for beskrivelse av 4 partisjoner (kalt 'primær'). En av disse kan være en utvidet partisjon; dette er en boks som inneholder logiske partisjoner, med beskrivelser som finnes i en koblet liste over sektorer, hver foran de tilsvarende logiske partisjonene. De fire primære partisjonene, tilstede eller ikke, får tallene 1-4. Logiske partisjoner starter nummerering fra 5.

I en partisjonstabell av DOS-type lagres startforskyvningen og størrelsen på hver partisjon på to måter: som et absolutt antall sektorer (gitt i 32 biter) og som en trippel for sylindere/hoder/sektorer (gitt i 10+8+6 biter). Førstnevnte er OK; med 512-byte sektorer vil dette fungere opptil 2 TB. Sistnevnte har to forskjellige problemer. Først av alt kan disse C/H/S-feltene bare fylles ut når antall hoder og antall sektorer per spor er kjent.

For det andre, selv om vi vet hva disse tallene skal være, strekker ikke de 24 bitene som er tilgjengelige. DOS bruker kun C/H/S, Windows bruker begge, Linux bruker aldri C/H/S.

Diskgeometri

Hvis mulig, fdisk henter diskgeometrien automatisk. Dette er ikke nødvendigvis den fysiske diskgeometrien (ja, moderne disker har egentlig ikke noe som en fysisk geometri, absolutt ikke noe som kan beskrives i forenklet form for sylindere/hoder/sektorer), men er diskgeometrien som MS-DOS bruker for partisjonen bord.

Vanligvis går alt bra som standard, og det er ingen problemer hvis Linux er det eneste systemet på disken. Men hvis disken må deles med andre operativsystemer, er det ofte en god idé å la en fdisk fra et annet operativsystem lage minst én partisjon. Når Linux starter, ser den på partisjonstabellen og prøver å utlede hvilken (falsk) geometri som kreves for godt samarbeid med andre systemer.

Konsistenssjekk

Hver gang en partisjonstabell skrives ut, utføres en konsistenssjekk på partisjonstabelloppføringene. Denne sjekken verifiserer at de fysiske og logiske start- og endepunktene er identiske og at partisjonen starter og slutter på en sylindergrense (bortsett fra den første partisjonen).

Noen versjoner av MS-DOS oppretter en første partisjon som ikke begynner på en sylindergrense, men på sektor 2 av den første sylinderen. Partisjoner som begynner i sylinder 1 kan ikke begynne på en sylindergrense, men dette vil neppe forårsake problemer med mindre du har OS/2 på maskinen din.

En sync() og en BLKRRPART ioctl() (reles partisjonstabell fra disk) utføres før de avsluttes når partisjonstabellen har blitt oppdatert. For lenge siden var det nødvendig å starte på nytt etter bruk av fdisk. Jeg tror ikke dette er tilfellet lenger; faktisk, omstart for raskt kan føre til tap av ikke-ennå-skrevne data. Merk at både kjernen og diskmaskinvaren kan bufre data.

Dos 6.x Advarsel

DOS 6.x FORMAT-kommandoen ser etter noe informasjon i den første sektoren av dataområdet til partisjonen og behandler denne informasjonen som mer pålitelig enn informasjonen i partisjonstabellen. DOS FORMAT forventer at DOS FDISK sletter de første 512 bytene av dataområdet til en partisjon når det skjer en størrelsesendring. DOS FORMAT vil se på denne ekstra informasjonen selv om /U-flagget er gitt — vi anser dette som en feil i DOS FORMAT og DOS FDISK.

Poenget er at hvis du bruker cfdisk eller fdisk for å endre størrelsen på en DOS-partisjonstabelloppføring, må du også bruke dd å nullstille de første 512 bytene av den partisjonen før du bruker DOS FORMAT til å formatere partisjonen. For eksempel, hvis du brukte cfdisk til å lage en DOS-partisjonstabelloppføring for /dev/hda1, så (etter å ha avsluttet fdisk eller cfdisk og startet på nytt Linux slik at partisjonstabellinformasjonen er gyldig) vil du bruke kommandoen "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" for å nullstille første 512 bytes av partisjonen.

Vær ekstremt forsiktig hvis du bruker dd kommando, siden en liten skrivefeil kan gjøre all data på disken ubrukelig.

For best resultat bør du alltid bruke et OS-spesifikt partisjonstabellprogram. For eksempel bør du lage DOS-partisjoner med DOS FDISK-programmet og Linux partisjoner med Linux fdisk- eller Linux cfdisk-programmet.

fdisk-alternativer

-b sektorstørrelse: Spesifiser sektorstørrelsen på disken. Gyldige verdier er 512, 1024 eller 2048. (Nylige kjerner kjenner til sektorstørrelsen. Bruk dette kun på gamle kjerner eller for å overstyre kjernens ideer.)

-C cyls: Spesifiser antall sylindre på disken. Vi har ingen anelse om hvorfor noen vil gjøre det.

-H hoder: Spesifiser antall hoder på disken. (Ikke det fysiske tallet, selvfølgelig, men tallet som brukes for partisjonstabeller.) Rimelige verdier er 255 og 16.

-S sekter: Spesifiser antall sektorer per spor på disken. (Ikke det fysiske tallet, selvfølgelig, men tallet som brukes for partisjonstabeller.) En rimelig verdi er 63.

-l: List opp partisjonstabellene for de angitte enhetene og avslutt. Hvis ingen enheter er oppgitt, de som er nevnt i /proc/partitions (hvis det finnes) brukes.

-u:Når du viser partisjonstabeller, oppgi størrelser i sektorer i stedet for sylindre.

-s skillevegg: De størrelse av partisjonen (i blokker) skrives ut på standardutgangen.

-v:Skriv ut versjonsnummer av fdisk program og avslutte.