|
1.
Introducere în Dispozitive Bloc
Dispozitive Bloc
Vom arunca o privire atentă asupra aspectelor în legătură cu discurile din
Gentoo Linux şi Linux, în general, incluzând sistemele de fişiere, partiţii şi
dispozitive bloc. Apoi, odată ce vă familiarizaţi cu toate aspectele despre
discuri şi sisteme de fişiere, veţi fi ghidaţi prin procesul de setare al
partiţiilor şi sistemelor de fişiere pentru instalarea dvs. de Gentoo Linux.
Pentru a începe, vom face introducerea dispozitivelor bloc. Cel mai
renumit dispozitiv bloc este probabil cel care reprezintă primul hard-disk SCSI
într-un sistem Linux, şi anume /dev/sda.
Dispozitivele bloc amintite mai sus, reprezintă o interfaţă abstractă pentru
disc. Programele utilizator pot folosi aceste dispozitive bloc pentru a
interacţiona cu discul dvs. fără a avea grija dacă hard-disk-urile sunt IDE,
SCSI sau altceva. Programul poate adresa ceea ce urmează să se stocheze pe disc
ca o mulţime continuă de blocuri de 512 octeţi accesibile aleator.
Partitiţii
Deşi este teoretic posibil să utilizăm un disc întreg pentru a găzdui sistemul
dvs. Linux, acesta este un lucru foarte rar pus în practică. În loc,
dispozitivele bloc întregi sunt împărţite în dispozitive bloc mai mici şi mai
uşor de manipulat. Acestea sunt numite partiţii.
1.
Proiectarea unei Scheme de Partiţionare
Cât de Multe şi Cât de Mari?
Numărul de partiţii este în foarte mare măsură dependent de mediul dvs. Spre
exemplu, dacă aveţi un număr foarte mare de utilizatori, cel mai probabil veţi
dori să aveţi directorul /home separat, deoarece sporeşte
securitatea şi facilitează operaţiile de backup. Dacă instalaţi Gentoo ca
server de mail, directorul dvs. /var ar trebui să fie separat,
pentru că toate mail-urile sunt stocate în /var. O bună alegere a
sistemului de fişiere va mări la maxim performanţele. Serverele de jocuri vor
avea o partiţie /opt separată, deoarece majoritatea aplicaţiilor
server pentru jocuri sunt instalate acolo. Motivul este similar cu cel pentru
/home: securitate şi backup. Veţi dori în mod sigur să vă păstraţi
/usr mare: nu numai că va conţine majoritatea aplicaţiilor, dar
numai structura Portage ocupă în jur de 500 MOcteţi, excluzând sursele ce sunt
stocate în acesta.
După cum puteţi observa, depinde foarte mult scopul pe care doriţi să-l
atingeţi. Partiţii sau volume separate au următoarele avantaje:
-
Puteţi alege cel mai performant sistem de fişiere pentru fiecare partiţie sau
volum
-
Întregul sistem nu poate rămâne fără spaţiu liber dacă o aplicaţie
nefuncţională scrie în continuu fişiere pe o partiţie sau volum
-
Dacă este necesar, verificările sistemului de fişiere sunt reduse ca timp,
deoarece se pot executa mai multe verificări în paralel (deşi acest avantaj
este mai mare în cazul discurilor multiple, decât în cel al partiţiilor
multiple)
-
Securitatea poate fi îmbunătăţită prin mount-area unor partiţii sau volume doar
pentru citire, în mod nosuid (biţii setuid sunt ignoraţi), noexec (biţii pentru
execuţie sunt ignoraţi), etc.
În orice caz, partiţiile multiple au un mare dezavantaj: dacă nu sunt
configurate corect, pot cauza ca un sistem să aibă foarte mult loc liber pe o
partiţie şi fără loc liber pe alta. Există, de asemenea, o limitare la 15
partiţii pentru SCSI şi SATA.
1.
Utilizarea fdisk pe arhitectura MIPS pentru a vă partiţiona discul
Maşinile SGI: Crearea SGI Disk Label
Toate discurile pe un sistem SGI necesită definirea informaţiei SGI Disk
Label, ce oferă o funcţionalitate similară cu zonele din Sun şi MS-DOS --
Stochează informaţii despre partiţiile de pe disc. Crearea unei zone SGI Disk
Label va crea două partiţii speciale pe disc:
-
Antetul de Volum SGI (a 9-a partiţie): Această partiţie este
importantă. Pe ea va fi stocată aplicaţia bootloader şi, în unele
cazuri, va conţine, de asemenea, imaginile de kernel.
-
Volumul SGI (a 11-a partiţie): Această partiţie este similară ca
scop cu a treia partiţie a Sun Disklabel ca "Întregul Disc". Această
partiţie acoperă întregul disc, şi ar trebui lăsată neatinsă. Ea nu are un
scop special, decât să asiste componenta PROM într-un mod nedocumentat (sau
este utilizat de IRIX într-un anumit mod).
Atenţie:
Antetul de Volum SGI trebuie să înceapă la cilindrul 0. Dacă nu se
întâmplă aşa, nu veţi putea boot-a de pe disc.
|
Urmează un extract dintr-o sesiune de fdisk. Citiţi şi adaptaţi-l după
nevoile dvs...
Cod 1.1: Crearea SGI Disklabel |
# fdisk /dev/sda
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):
|
Notă:
Dacă discul deja conţine o informaţie SGI Disklabel, atunci fdisk nu vă va mai
oferi opţiunea de a crea una nouă. Există două soluţii în acest caz. Una este
să creaţi o informaţie Sun sau MS-DOS, scrieţi schimbările pe disc şi
restartaţi fdisk. A doua este să suprascrieţi tabela de partiţii cu date nule
prin intermediul următoarei comenzi: dd if=/dev/zero of=/dev/sda bs=512
count=1.
|
Redimensionarea Antetului de Volum SGI la mărimea corectă
Important:
Acest pas este deseori necesar, datorită unui bug în fdisk. Din unele
motive, antetul de volum nu este creat corect, rezultatul final fiind faptul
că începe şi se termină la cilindrul 0. Aceasta previne crearea mai
multor partiţii. Pentru a rezolva această problemă... citiţi mai departe.
|
Acum, că informaţi SGI DiskLabel este creată, partiţiile pot fi acum definite.
În exemplul de mai sus, aveţi deja definite două partiţii. Acestea sunt cele
două partiţii speciale menţionate mai anterior şi nu ar trebui în mod normal să
fi alterate. Dar, pentru a instala Gentoo, vom avea nevoie să încărcăm o
aplicaţie bootloader şi, posibil, mai multe imagini de kernel (în funcţie
de tipul sistemului) direct în antetul de volum. Antetul de volum poate stoca
până la opt imagini de orice mărimi, fiecare imagine cu numele de
până la opt caractere.
Notă:
Pe sistemele SGI, există două aplicaţii bootloader disponibile:
arcboot şi arcload. Momentan, doar Indy, Indigo2 (R4k variety),
Challenge S şi O2 sunt capabile să utilizez arcboot ca aplicaţie
bootloader, în timp ce arcload rulează pe toate maşinile SGI
suportate de Linux. Spre deosebire de arcboot totuşi, arcload
nu poate citi, în prezent, partiţii EXT2/3, şi astfel, acesta îşi
încarcă imaginile de kernel din antetul volum.
|
Procesul de a mări capacitatea antetului de volum nu este chiar cum ar trebui;
este nevoie de unele trucuri pentru aceasta. Nu se poate şterge şi re-adăuga
antetul de volum din cauza comportamentului ciudat al fdisk. În exemplul oferit
mai jos, vom crea un antet de volum de 50 MOcteţi alături de o partiţie de 50
MOcteţi pentru /boot. Schema actuală a discului dvs. poate varia, dar aceasta
este doar în scop ilustrativ.
Cod 1.1: Redimensionarea Antetului de Volum SGI corect |
Command (m for help): n
Partition number (1-16): 1
First cylinder (5-8682, default 5): 51
Last cylinder (51-8682, default 8682): 101
Command (m for help): d
Partition number (1-16): 9
Command (m for help): n
Partition number (1-16): 9
First cylinder (0-50, default 0): 0
Last cylinder (0-50, default 50): 50
|
Dacă nu sunteţi siguri cum să utilizaţi fdisk, puteţi consulta
explicaţia ulterioară în acest document despre partiţionarea pe dispozitivele
Cobalt. Conceptele sunt exact aceleaşi - trebuie doar să vă amintiţi să nu
modificaţi informaţiile antetul de volum şi întregul disc.
Odată terminat procesul, este sigur să creaţi restul partiţiilor care le
doriţi. După ce toate partiţiile sunt create, asiguraţi-vă că setaţi
identificatorul partiţiei pentru swap la 82, care este Linux Swap.
Implicit, va fi 83, Linux Native.
Acum că partiţiile dvs. sunt create, puteţi continua cu Crearea Sistemelor de Fişiere.
Maşinile Cobalt: Partiţionarea Discului Dvs.
Pe maşinile Cobalt, BOOTROM se va aştepta la o zonă MBR MS-DOS, deci
partiţionarea discului este relativ concisă -- de fapt se face exact cum aţi
face-o pe o maşină Intel x86. Oricum, sunt unele lucruri care trebuie să
le reţineţi.
-
Aplicaţia firmware se va aştepta ca /dev/hda1 să fie o
partiţie Linux formatată ca EXT2 Revision 0. Partiţiile EXT2
Revision 1 NU vor funcţiona! (Cobalt BOOTROM recunoaşte doar EXT2r0)
-
Partiţia menţionată anterior trebuie să conţină o imagine ELF arhivată cu
gzip, vmlinux.gz în rădăcina partiţiei, pe care o va considera
un kernel şi o va încărca
Din acest motiv, vă recomandăm să creaţi o partiţie /boot cu o
mărime de ~20MOcteţi formatată ca EXT2r0 după care puteţi instala CoLo şi
imaginile dvs. de kernel. Aceasta vă permite să rulaţi un sistem de fişiere
modern (EXT3 sau ReiserFS) pentru partiţia rădăcină.
Vom presupune că aţi creat /dev/hda1 pentru a efectua ulterior
mount ca o partiţie /boot. Dacă doriţi această partiţie
/, va trebui să reţineţi aşteptările aplicaţiei PROM.
Deci, să continuăm... Pentru a crea partiţiile, tastaţi fdisk /dev/hda
la prompt. Comenzile principale pe care trebuie să le cunoaşteţi sunt
următoarele:
-
o: Ştergeţi tabela de partiţii veche, începând cu o tabelă de
partiţii MS-DOS goală
-
n: Creaţi o nouă partiţie
-
t: Schimbarea Tipului Partiţiei
- Utilizaţi tipul 82 pentru Linux Swap, 83 pentru Linux
FS
-
d: Ştergeţi o partiţie
-
p: Afişaţi tabela de partiţii
-
q: Ieşire -- lasă tabela de partiţii neatisă.
-
w: Ieşire -- scrie tabela de partiţii curentă.
Cod 1.1: Partiţionarea discului |
# 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.
#
|
Şi asta este totul. Ar trebui, acum, să procedaţi la următorul pas: Crearea Sistemelor de Fişiere.
1.
Crearea Sistemelor de Fişiere
Introducere
Acum, că partiţiile dvs. sunt create, este timpul să aplicăm un sistem de
fişiere pe acestea. Dacă nu vă pasă ce sistem de fişiere să alegeţi şi sunteţi
mulţumiţi cu ceea ce utilizăm noi implicit în acest manual, continuaţi cu Aplicarea unui Sistem de Fişiere pe o Partiţie.
Altfel, citiţi mai departe pentru a învăţa despre sistemele de fişiere
disponibile...
Sisteme de Fişiere?
Sunt disponibile mai multe sisteme de fişiere. ReiserFS, EXT2 şi EXT3 sunt
considerate stabile pe arhitectura MIPS, celelalte fiind considerate
experimentale.
ext2 este cel mai încercat sistem de fişiere Linux, dar nu conţine
destule informaţii de tip metadata pentru jurnalizare, ceea ce înseamnă că
verificările de rutină ale sistemului de fişiere ext2 la pornirea sistemului
pot dura o perioada considerabilă de timp. Există acum o mulţime de sisteme de
fişiere jurnalizate din noua generaţie ce pot fi verificate pentru consistenţă
foarte repede şi sunt, de aceea, preferate celor corespondente nejurnalizate.
Sistemele de fişiere jurnalizate previn durata lungă la pornirea sistemului
când sistemul de fişiere este într-o stare de inconsitenţă.
ext3 este versiunea jurnalizată a sistemului de fişiere ext2, oferind
informaţii de jurnalizare de tip metadata pentru recuperări rapide în plus faţă
de alte moduri de îmbunătăţire ca jurnalizarea completă a datelor şi
jurnalizarea ordonată a datelor. ext3 este un sistem de fişiere foarte bun şi
sigur. Conţine o indexare adiţională b-tree, opţiune de indexare ce oferă o
performanţă bună în aproape toate situaţiile. Puteţi activa această indexare
prin adăugarea opţiunii -O dir_index comenzii mke2fs. Pe scurt,
ext3 este un sistem de fişiere excelent.
ReiserFS este un sistem de fişiere B*-tree ce oferă în general o
performanţă foarte bună şi depăşeşte mult atât ext2 cât şi ext3 în cazul
fişierelor mici (mai mici de 4K), în cele mai multe cazuri cu un coeficient de
10-15 ori. ReiserFS oferă o scalabilitate foarte bună şi conţine jurnalizare de
tip metadata. Începând cu kernel 2.4.18+, ReiserFS este solid şi utilizabil
atât în cazuri normale cât şi pentru cazuri extreme cum ar fi crearea de
sisteme de fişiere foarte mari, utilizarea multor fişiere foarte mici, fişiere
foarte mari şi directoare conţinând zeci de mii de fişiere.
XFS este un sistem de fişiere cu jurnalizare metadata ce are un set de
funcţionalităţi robuste şi este optimizat pentru scalabilitate. Recomandăm
utilizarea acestui sistem de fişiere doar pe sistemele Linux ce conţin discuri
SCSI şi/sau sisteme de stocare pe fibra optică şi care deţin o sursă de
alimentare neîntreruptibilă. Deoarece XFS utilizează într-un mod agresiv
păstrarea datelor tranzitate în RAM, programele ce nu sunt proiectate corect
(cele care nu îşi asigură precauţii la scrierea fişierelor pe disc care sunt
destul de puţine) pot pierde multe date dacă sistemul se opreşte în mod
neaşteptat.
JFS este sistemul de fişiere cu jurnalizare de înaltă performanţă al
IBM. A devenit gata pentru producţie şi nu există prea multe înregistrări
pentru a comenta pozitiv sau negativ asupra stabilităţii generale a acestuia în
acest moment.
Aplicarea unui Sistem de Fişiere pe o Partiţie
Pentru a crea un sistem de fişiere pe o partiţie sau volum, există utilitare
disponibile pentru fiecare sistem de fişiere posibil:
| Sistem de Fişiere |
Comanda pentru Creare |
| ext2 |
mke2fs |
| ext3 |
mke2fs -j |
| reiserfs |
mkreiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
Spre exemplu, pentru a avea partiţia de boot (/dev/sda1 în
exemplul nostru) ca ext2 şi partiţia rădăcină (/dev/sda3 în
exemplul nostru) ca ext3 (ca în exemplul nostru), ar trebui să utilizaţi:
Cod 1.1: Aplicarea unui sistem de fişiere pe o partiţie |
# mke2fs /dev/sda1
# mke2fs -j /dev/sda3
|
Acum creaţi sistemele de fişiere pe partiţiile (sau volumele logice) nou
create.
Atenţie:
Dacă instalaţi pe un server Cobalt, amintiţi-vă faptul că /dev/hda1
TREBUIE să fie de tipul EXT2 revision 0; Orice altceva (spre ex. EXT2
revision 1, EXT3, ReiserFS, XFS, JFS sau altele) NU VOR FUNCŢIONA!
Puteţi formata partiţia utilizând comanda : mke2fs -r 0 /dev/hda1.
|
Atenţie:
De asemenea, trebuie să ştiţi faptul că momentan arcboot nu poate citi de pe
nici un alt sistem de fişiere în afară de EXT2, EXT3 şi ISO9660 (versiunile
recente). Din acest motiv, /boot pe maşinile SGI trebuie, de
asemenea, să fie stocat pe o partiţie EXT2 sau EXT3.
|
Activarea Partiţiei Swap
mkswap este comanda utilizată pentru a crea şi iniţializa partiţiile
swap:
Cod 1.1: Crearea unei semnături Swap |
# mkswap /dev/sda2
|
Pentru a activa partiţia swap, utilizaţi swapon:
Cod 1.1: Activarea partiţiei swap |
# swapon /dev/sda2
|
Creaţi şi activaţi partiţia swap utilizând comenzile menţionate anterior.
1.
Mount-area
Acum ca partiţiile dvs. sunt iniţializate şi găzduiesc un sistem de fişiere,
este timpul să mount-aţi aceste partiţii. Utilizaţi comanda mount. Nu
uitaţi să creaţi directoarele de mount pentru fiecare partiţie creată. Ca un
exemplu, vom mount-a partiţiile rădăcină şi de boot:
Cod 1.1: Mount-area partiţiilor |
# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot
|
Notă:
Dacă doriţi ca directorul /tmp să se afle pe o partiţie separată,
asiguraţi-vă că îi schimbaţi permisiunile după mount-are: chmod 1777
/mnt/gentoo/tmp. Aceasta este valabil şi pentru /var/tmp.
|
Trebuie, de asemenea, să utilizăm mount pentru sistemul de fişiere proc (o
interfaţă virtuală cu kernel-ul) în /proc. Dar, mai întâi va
trebui să stocăm fişierele noastre pe partiţii.
Continuaţi cu (Instalarea Fişierelor de Instalare
Gentoo).
|
Actualizat la 27 Februarie 2006 |
Versiunea originală a acestui document a fost actualizată ultima dată la 17 Octombrie 2011 |
|
Donate to support our development efforts.
|
|
|