Gentoo Logo

Disclaimer : This document is not valid and is not maintained anymore.


[ << ] [ < ] [ Hjem ] [ > ] [ >> ]


4. Forberedelse af harddiske

Indhold:

4.a. Introduktion til blok-enheder

Blok-enheder

Vi vil tage et godt kig på disk-orienterede aspekter af Gentoo Linux og Linux generelt, inklusiv Linux filesystemer, partitioner og blok-enheder. Så, når du er blevet godt kendt med diske og filsystemer, vil du blive vejledt igennem processen af at opsætte partioner og filsystemer til din Gentoo Linux installation.

For at begynde, vil vi introducere begrebet blok-enheder. Den mest kendte blok-enhed er sikkert den, som repræsenterer den første SCSI-harddisk på et Linux system, med navnet /dev/sda.

Blok-enhederne ovenover repræsenterer en abstrakt grænseflade til harddisken. Brugerprogrammer kan bruge disse blok-enheder, til at interagere med din harddisk, uden at skulle bekymre sig om at dine drev er IDE, SCSI eller noget andet. Programmet kan simpelthen adressere lageret på harddisken, som et bundt af tilstødende, vilkårlige-tilgængelige 512-byte blokke.

Partitioner

Selvom det er teoretisk muligt at bruge hele harddisken til dit Linux system, er det næsten aldrig gjort i praksis. I stedet for er hele hardiskens blok-enheder opsplittet i mindre, mere håndgribelige blok-enheder. På de fleste systemer er disse kaldet partitioner.

4.b. Design af et partitionsskema

Hvor mange og hvor stort?

Antallet af partitioner er meget afhængigt af dit miljø. F.eks., hvis du har en hel del brugere, vil det være nærmest at lave dit /home separat, idet at det forøger sikkerheden og gør det nemmere at lave backup. Hvis du installerer Gentoo for at arbejde som en mail-server, burde din /var være separat, idet alle emails er gemt inde i /var. Et godt valg af filsystem vil derefter maksimere din ydelse. Spil-servere bør have en separat /opt, idet at de fleste spil-servere bliver installeret der. Forklaringen er den samme som for /home: sikkerhed og backup. Du vil med sikkerhed ønske at holde /usr stor: ikke alene indeholder den de fleste programmer, Portage-træet optager alene 500 MB, undtagen de forskellige kildekoder, som er gemt inden i.

Som du kan se, afhænger det meget af hvad du vil opnå. Separate partitioner eller volumes har følgende fordele:

  • Du kan vælge det bedste ydelsesstærke filsystem til hver partition eller volume
  • Hele dit system bør ikke løbe tør for fri harddisk-plads, hvis et ødelagt værktøj bliver ved med at skrive filer til en partition eller volume
  • Hvis nødvendigt, et filsystem-tjek er reduceret i tid, idet flere tjek kan blive gjort parallelt (selvom denne fordel er større med flere harddiske end med flere partitioner)
  • Sikkerhed kan blive forøget ved at mounte nogle partitioner eller volumes read-only (kun-læs), nosuid (setuid bits er ignoreret), noexec (executable bits er ignoreret) osv.

Dog har flere partitioner en stor ulempe: hvis det ikke er opsat ordentligt, kan det betyde at have et system med masser af fri plads på én partition og intet på en anden. Der er også en begrænsning på 15 partitioner på SCSI og SATA.

4.c. At bruge fdisk på MIPS for at partitionere din disk

SGI-maskiner: Oprettelse af en SGI Disk Label

Alle diske i et SGI system kræver en SGI Disk Label, hvilken fungerer som noget der ligner Sun & MS-DOS disklabels -- Den gemmer information omkring diskens partitioner. At lave en SGI Disk Label vil skabe to specielle partitioner på disken:

  • SGI Volume Header (den niende partition): Denne partition er vigtig. Det er her kerne billed-filerne skal hen.
  • SGI Volume (den 11. partition): Denne partitions formål minder om Sun Disklabel's tredje partition af "Hele disken". Denne partition dækker hele disken, og bør forblive uberørt. Den tjener ikke noget specielt formål andet end at hjælpe PROM på en ikke dokumenteret facon (eller den bliver brugt af IRIX på en eller anden måde).

Advarsel: SGI Volume Headeren skal begynde ved cylinder 0. Hvis dette fejler, så vil du ikke være i stand til at starte op fra disken.

Det følgende er et eksempel udsnit fra en fdisk session. Læs det og ret det til efter dine behov...

Kode oversigt 3.1: At lave en SGI Disklabel

# fdisk /dev/sda
http://gentoo-dk.berlios.de/sider/status.xml
Command (m for help): x

Expert command (m for help): m
Command action
   b   move beginning of data in a partition
   c   change number of cylinders
   d   print the raw data in the partition table
   e   list extended partitions
   f   fix partition order
   g   create an IRIX (SGI) partition table
   h   change number of heads
   m   print this menu
   p   print the partition table
   q   quit without saving changes
   r   return to main menu
   s   change number of sectors/track
   v   verify the partition table
   w   write table to disk and exit

Expert command (m for help): g
Building a new SGI disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content will be unrecoverably lost.

Expert command (m for help): r

Command (m for help): p

Disk /dev/sda (SGI disk label): 64 heads, 32 sectors, 17482 cylinders
Units = cylinders of 2048 * 512 bytes

----- partitions -----
Pt#     Device  Info     Start       End   Sectors  Id  System
 9:  /dev/sda1               0         4     10240   0  SGI volhdr
11:  /dev/sda2               0     17481  35803136   6  SGI volume
----- Bootinfo -----
Bootfile: /unix
----- Directory Entries -----

Command (m for help):

Bemærk: Hvis din harddisk allerede har en eksisterende SGI Disklabel, så vil fdisk ikke tillade at lave en ny label. Der er to måder at komme omkring dette på. En er at lave en Sun eller MS-DOS disklabel, skrive ændringerne til disken og genstarte fdisk. Den anden er at overskrive partitionstabellen med null data via den følgende kommando: dd if=/dev/zero of=/dev/sda bs=512 count=1.

Hvis du er usikker på at bruge fdisk, kig lidt længere nede i vejledningen til partitionering på Cobalt. Konceptet er præcist det samme -- husk at lade "volume header" og "hele disk-partitionen" være.

Nu da dine partitioner er oprettet, kan du fortsætte med Oprettelse af filsystemer.

Cobalt maskiner: Partitionering af din harddisk

På Cobalt maskiner, forventer BOOTROM at se en MS-DOS MBR, så partitioneringen af harddisken er relativt nemt -- det er endda gjort på samme måde, som du ville gøre det på en Intel x86 maskine. Dog er der nogle tinge som du bør tage dig i agt på.

  • Cobalt firmware vil forvente at /dev/hda1 er en Linux partition, som er formateret EXT2 Revision 0. EXT2 Revision 1 partitioner vil IKKE VIRKE! (Cobalt BOOTROM forstår kun EXT2r0)
  • Når ovenstående er sagt, skal partitionen indeholde en gzipped ELF billed-fil, vmlinux.gz i roden af dens partition, hvorfra den hentes, ligesom kernen

På grund af dette, anbefaler jeg at oprette en ~20MB /boot partition, som er formateret EXT2r0, hvorpå du installerer CoLo & dine kerner. Dette tillader dig at køre et moderne filsystem (EXT3 eller ReiserFS) til dit root-filsystem.

Jeg forudsætter at du har oprettet /dev/hda1, som skal mountes senere som en /boot-partition. Hvis du ønsker at gøre dette til /, skal du huske at kigge på PROMs forventninger senere.

Vi forsætter... For at oprette partitioner, skal du taste fdisk /dev/hda ved prompten. Hovedkommandoerne som du skal bruge er disse:

  • o: Sletter den gamle partitionstabel, og starter med en tom MS-DOS partitionstabel
  • n: Ny partition
  • t: Ændre partitionstype
    • Brug type 82 til Linux Swap og 83 til Linux FS
  • d: Slet en partition
  • p: Vis (udskriv) partitionstabelen
  • q: Afslut -- lade den gamle partitionstabel være.
  • w: Afslut -- skrive den nye partitionstable.

Kode oversigt 3.2: Partitionering af harddisken

# fdisk /dev/hda
 	 
The number of cylinders for this disk is set to 19870.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
 
(Start med at slette de eksisterende partitioner)
Command (m for help): o
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
  	 
  	 
The number of cylinders for this disk is set to 19870.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
  	 
(Du kan nu verificere at partitionstabellen er tom, ved at bruge 'p'-kommandoen)
  	 
Command (m for help): p
  	 
Disk /dev/hda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  	 
   Device Boot      Start         End      Blocks   Id  System
  	 
(Oprette /boot-partitionen)
  	 
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
  	 
(Tast bare ENTER her, for at acceptere standard)
  	 
First cylinder (1-19870, default 1):
Last cylinder or +size or +sizeM or +sizeK (1-19870, default 19870): +20M
  	 
(og nu, hvis vi taster 'p' igen, bør vi se den nye partition)
Command (m for help): p
  	 
Disk /dev/hda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  	 
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1          40       20128+  83  Linux
  	 
(Resten, jeg plejer at indsætte en extended partition, så jeg opretter denne)
  	 
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 2
  	 
(Igen, standarden er fint nok, tast bare ENTER.)
  	 
First cylinder (41-19870, default 41):
Using default value 41
  	 
(Vi ønsker at bruge hele disken her, så tast ENTER igen)
Last cylinder or +size or +sizeM or +sizeK (41-19870, default 19870):
Using default value 19870
  	 
(Nu, / partitionen -- Jeg bruger separate partitioner til /usr, /var,
etc... så / kan være lille.  Juster efter dine ønsker.)
  	 
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (41-19870, default 41):<Press ENTER>
Using default value 41
Last cylinder or +size or +sizeM or +sizeK (41-19870, default 19870): +500M
  	 
(... og lige så dan ved andre partitioner ...)
  	 
(Sidst, swap-plads.  Jeg anbefaler mindst 250 MB swap,
ønskbart 1 GB)
  	 
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (17294-19870, default 17294): <Press ENTER>
Using default value 17294
Last cylinder or +size or +sizeM or +sizeK (1011-19870, default 19870): <Press ENTER>
Using default value 19870
  	 
(Now, if we check our partition table, everything should mostly be ship
shape except for one thing...)
  	 
Command (m for help): p
  	 
Disk /dev/hda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot      Start         End      Blocks      ID  System
/dev/hda1               1          21       10552+  83  Linux
/dev/hda2              22       19870    10003896    5  Extended
/dev/hda5              22        1037      512032+  83  Linux
/dev/hda6            1038        5101     2048224+  83  Linux
/dev/hda7            5102        9165     2048224+  83  Linux
/dev/hda8            9166       13229     2048224+  83  Linux
/dev/hda9           13230       17293     2048224+  83  Linux
/dev/hda10          17294       19870     1298776+  83  Linux
  	 
(Noter at hvordan #10, din swap-partition stadigvæk er type 83?)
  	 
Command (m for help): t
Partition number (1-10): 10
Hex code (type L to list codes): 82
Changed system type of partition 10 to 82 (Linux swap)
  	 
(Det bør ordne det... bare for at verificere...)
  	 
Command (m for help): p
  	 
Disk /dev/hda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  	 
Device Boot      Start         End      Blocks      ID  System
/dev/hda1               1          21       10552+  83  Linux
/dev/hda2              22       19870    10003896    5  Extended
/dev/hda5              22        1037      512032+  83  Linux
/dev/hda6            1038        5101     2048224+  83  Linux
/dev/hda7            5102        9165     2048224+  83  Linux
/dev/hda8            9166       13229     2048224+  83  Linux
/dev/hda9           13230       17293     2048224+  83  Linux
/dev/hda10          17294       19870     1298776+  82  Linux Swap
  	 
(Nu, lad os skrive den nye partitionstabel.)
  	 
Command (m for help): w
The partition table has been altered!
  	 
Calling ioctl() to re-read partition table.
Syncing disks.
  	 
#

Og det er alt hvad der skulle gøres. Du bør nu være klart til at forsætte med næste trin: Oprettelse af filesystemer.

4.d. Oprettelse af filsystemer

Introduktion

Nu da dine partitioner er lavet, er det tid til at lave filsystemer på dem. Hvis du er ligeglad med hvilket filsystem du vælger og er tilfreds med hvad vi bruger som standard her i denne håndbog, så kan du fortsætte med At anvende et filsystem på en partition. Ellers kan du fortsætte for at lære mere om de tilgængelige filsystemer...

Filsystemer?

Der er adskillige filsystemer til rådighed. ReiserFS, Ext2 og ext3 er fundet stabile på MIPS-arkitekturen, imens de andre er eksperimentielle.

ext2 er det afprøvede og sande Linux filsystem, men det har ikke metadata journaler, hvilket betyder at rutinemæssige tjek af filsystemer ved opstart kan tage en del tid. Der er nu et udvalg af filsystemer af nyere generation med journal, der kan tjekkes for konsekvens meget hurtigt og er derfor at foretrække fremfor deres tilsvarende uden journal. Filsystemer med journal kan afskaffe lange ventetider når dit system starter op og dine filsystemer er i en ikke konsekvent tilstand.

ext3 er den journaliserede udgave af ext2 filsystemet, der giver metadata journaler til hurtig genskabelse og yderligere andre ydelse fremmende journal muligheder så fuld data og ordnet data journal. ext3 er meget godt og et pålideligt filsystem. Det har en ekstra mulighed for at bruge hashede b-træer til at indeksere, hvilket giver høj ydelse i næsten alle situationer. For at sige det kort, ext3 er et fremragende filsystem.

ReiserFS er et filsystem baseret på B*-træer der har en god alsidig ydelse og slår både ext2 og ext3 stor når det kommer til at håndtere små filer (filer mindre end 4k), ofte med en faktor på 10x-15x. ReiserFS skalerer også ekstremt godt og har metadata journaler. Fra og med kerne 2.4.18+ er ReiserFS solid og brugbart til både et formål som alment filsystem, og til ekstreme tilfælde hvor man laver store filsystemer, brugen af mange små filer, meget store filer og biblioteker, der indeholder titusinder af filer.

XFS er et filsystem med metadata journaler, som kommer med et robust sæt af muligheder og er optimeret til skalerbarhed. Vi anbefaler kun at bruge dette filsystem til Linux systemer med high-end SCSI og/eller fiberkanal lager og en uafbrydbar strømforsyning. Fordi XFS aggressivt cachér indkommende data i RAM, kan dårligt designede programmer (dem der ikke tager fornuftige forholdregler, når de skriver filer til disken og der er faktisk en del af dem) miste en hel del data, hvis systemet uventet går ned.

JFS er IBM's høj-ydelses filsystem med journal. Det er fornyligt blevet klar til produktion og der har ikke være tilstrækkelige optegnelser til at kommentere positivt eller negativt omkring dets stabilitet pt.

At anvende et filsystem på en partition

For at lave et filsystem på en partition eller enhed, så er der værktøjer til rådighed for hvert filsystem:

Filsystem Kommando til at lave
ext2 mke2fs
ext3 mke2fs -j
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs

F.eks. for at få boot partitionen (/dev/sda1 i vores tilfælde) i ext2 og root partitionen (/dev/sda3 i vores tilfælde) i ext3 (som i vores tilfælde), ville vi bruge:

Kode oversigt 4.1: At anvende et filsystem på en partition

# mke2fs /dev/sda1
# mke2fs -j /dev/sda3

Lav nu filsystemerne på dine for nyligt skabte partitioner (eller logiske enheder).

Advarsel: Hvis du installerer på en Cobalt-server, husk at /dev/hda1 SKAL være af typen EXT2 revision 0; Alt andet (e.g. EXT2 revision 1, EXT3, ReiserFS, XFS, JFS and others) VIL IKKE VIRKE! Du kan formatere partitionen ved at bruge kommandoen: mke2fs -r 0 /dev/hda1.

Advarsel: Også, være på agt at arcboot på nuværende tidspunkt ikke kan læse andre filsystemer end EXT2, EXT3 og ISO9660 (nuværende versioner). På grund af dette, skal /boot på SGI-maskiner også være på en EXT2- eller EXT3-partition.

At aktivere swap-partitionen

mkswap er kommandoen der bruges til at oprette og initialisere swap partitioner:

Kode oversigt 4.2: At lave en swap signatur

# mkswap /dev/sda2

For at aktivere swap-partitionen, brug swapon:

Kode oversigt 4.3: At aktivere swap-partitionen

# swapon /dev/sda2

Lav og aktiver swap ved at bruge ovenstående kommandoer.

4.e. At mounte

Nu hvor dine partitioner er initialiserede og huser et filsystem, er det tid til at mounte disse partitioner. Brug mount kommandoen. Glem ikke at lave de nødvendige mount-biblioteker til hver partition, som du har oprettet. Som et eksempel vil vi mounte root og boot-partionerne:

Kode oversigt 5.1: At mounte partitioner

# mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda1 /mnt/gentoo/boot

Bemærk: Hvis du vil have din /tmp til at være på en separat partition, så vær sikker på at ændre dens rettigheder efter at være blevet mountet: chmod 1777 /mnt/gentoo/tmp. Dette gælder også for /var/tmp.

Vi bliver også nødt til at mounte proc filsystemet (en virtuel grænseflade til kernen) på /proc. Men først skal vi placere vores filer på partitionerne.

Forsæt med Installere Gentoo installationsfiler.


[ << ] [ < ] [ Hjem ] [ > ] [ >> ]


Udskriv

View all

Opdateret 10. juni 2005

The original version of this document was last updated February 23, 2013

Opsummering: For at kunne installere Gentoo, skal du lave de nødvendige partitioner. Dette kapitel beskriver, hvordan man partitionerer en harddisk til fremtidig brug.

Sven Vermeulen
Forfatter

Roy Marples
Forfatter

Daniel Robbins
Forfatter

Chris Houser
Forfatter

Jerry Alexandratos
Forfatter

Seemant Kulleen
Gentoo x86 udvikler

Tavis Ormandy
Gentoo Alpha udvikler

Jason Huebel
Gentoo AMD64 udvikler

Guy Martin
Gentoo HPPA udvikler

Pieter Van den Abeele
Gentoo PPC udvikler

Joe Kallar
Gentoo SPARC udvikler

John P. Davis
Redaktør

Pierre-Henri Jondot
Redaktør

Eric Stockbridge
Redaktør

Rajiv Manglani
Redaktør

Jungmin Seo
Redaktør

Stoyan Zhekov
Redaktør

Jared Hudson
Redaktør

Colin Morey
Redaktør

Jorge Paulo
Redaktør

Carl Anderson
Redaktør

Jon Portnoy
Redaktør

Zack Gilburd
Redaktør

Jack Morgan
Redaktør

Benny Chuang
Redaktør

Erwin
Redaktør

Stuart Longland
Redaktør

Joshua Kinard
Redaktør

Stuart Longland
Redaktør

Tobias Scherbaum
Redaktør

Grant Goodyear
Reviewer

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Lars Weiler
Bidrager

Jesper Brodersen
Oversætter, Korrektur

Arne Mejlholm
Oversætter, Korrektur

Frans Sohn Frøkjær-Jensen
Oversætter, Korrektur

Morten Fangel
Oversætter, Korrektur

Esben Bach
Oversætter, Korrektur

Simon Holm Thøgersen
Oversætter, Korrektur

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.