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)
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)
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
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-19870, default 1):
Last cylinder or +size or +sizeM or +sizeK (1-19870, default 19870): +20M
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
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (41-19870, default 41):
Using default value 41
Last cylinder or +size or +sizeM or +sizeK (41-19870, default 19870):
Using default value 19870
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
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
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
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)
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
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 ]
[ > ]
[ >> ]
Indholdet i dette dokument er autoriseret under en Creative Commons -
Attribution / Share Alike licens.
|
|