Calcul subțire - toate lucrurile mici din copia contului, modificați, îmbinați și formatați corect discurile și

În timp, nevoile unei persoane se schimbă, iar cu ele se schimbă conținutul hard disk-ului. Odată cu mult timp în urmă, Windows a fost eliminat mai târziu, iar în locul său a fost creată o partiție pentru Linux. Instalat "pentru a vedea" distribuțiile Linux au dispărut, făcând loc pentru noi date. A rămas doar o masă de partiție asemănătoare cu cea de porridge, care va trebui corectată astfel încât să nu se încurce în numele partițiilor și în punctele de montare.

În acest articol, vom examina modalități de a rezolva unele dintre problemele de disc care, mai devreme sau mai târziu, fiecare linuxoid întâlnește. Dupa ce a citit-o, veți învăța cum să redimensiona partiții, folosind doar Linux standard-utilități, cum să combine mai multe partiții într-una fără transferul sau pierderea de informații, cum să copiați OSE pe un hard disk diferit și să se pregătească Linux pentru utilizare cu drive-urile care sunt sectoare mai mari este de 4 kb.

Redimensionarea partițiilor

Imaginați-vă această situație: discul are două partiții extinse, fiecare dintre ele fiind împărțită în trei subsecțiuni: swap, o partiție care conține Linux și o partiție / acasă. Acestea sunt două distribuții Linux instalate una lângă alta. Chiar în spatele lor este partiția de date. După ce înțelegeți că nu aveți nevoie de oa doua distribuție Linux și decideți să eliminați a doua partiție extinsă. În locul său este spațiul liber, iar acum aveți două posibilități ea eliminate: a crea o partiție suplimentară de date care nu este frumos, pentru că așa cum o astfel de secțiune este deja acolo, sau a modifica dimensiunea / home-secțiune a primei de distribuție, astfel încât el a preluat spațiul liber și astfel a păstrat simplitatea și evidentitatea marcajului discului. Vom vorbi despre cum să procedăm mai jos.

Există cel puțin trei moduri de a modifica dimensiunea partiției: utilizați utilitarul utilitar grafic, utilitatea consolei parted sau faceți totul cu mâinile. Prima metodă este prea simplă pentru ao lua în considerare în detaliu, dar celelalte două merită o atenție deosebită. Pentru inceput, ia in considerare optiunea cu parted. Mai întâi, instalați utilitarul:

$ sudo apt-get instalat parted

Apoi, intrați în modul pentru un singur utilizator și dezactivați partiția / home:

$ sudo telinit 1
# umount / home

Dacă în loc de / home veți schimba dimensiunea partiției rădăcină a Linux sau a oricărei alte partiții de sistem, atunci trebuie să porniți din LiveCD cu pre-instalat parted. SystemRescueCD (www.sysresccd.org, pe care l-am pus periodic pe DVD) va funcționa bine pentru acest rol. Apoi, rulați partajat ca administrator:

$ sudo parted / dev / sda

Totuși, se poate face manual. Acest lucru poate fi util când trebuie să modificați dimensiunea partiției de sistem, iar la îndemână nu există decât un LiveCD normal, fără utilitatea divizată la bord. În acest caz, utilitățile standard fdisk și resize2fs din pachetul e2fsprogs (pentru sistemele de fișiere Ext2, Ext3 și Ext4) vor coborî. Încărcați din LiveCD, uitați-vă la tabela de partiții:

Amintiți-vă de numărul primului cilindru al partiției / home. Pentru a modifica mărimea FS a avut succes, nu ar trebui să conțină erori, așa că rulați fsck pe partiția / home (aici și sub acesta va fi / dev / sda7)

Acum trebuie să ștergeți partiția / dev / sda7 și să creați o secțiune mai mare în locul ei, care va ocupa de asemenea spațiul anterior eliberat. Pentru aceasta, rulați fdisk:

Ca răspuns la promptul de intrare, scrieți comanda "d" (ștergeți partiția) și introduceți numărul partiției (/ dev / sda7 = numărul 7). Apoi, creați o nouă partiție logică cu comanda 'n', după care scrieți 'l' (partiție logică). Ca răspuns la invitația de a intra în primul cilindru, specificați numărul obținut anterior cu comanda "fdisk -l". Ca răspuns la invitația de a introduce ultimul cilindru, apăsați (În mod implicit, fdisk face noua secțiune cât mai mare posibil, astfel încât este nevoie și zona eliberat mai devreme). Introduceți comanda 'p' pentru a verifica corectitudinea noii table de partiții și scrieți modificările cu comanda 'w'. Repornim calculatorul și pornim din nou din LiveCD. Executăm o verificare a sistemului de fișiere:

Resize2fs executați utilitarul fără argumente, astfel încât acesta va face automat dimensiunea sistemului de fișiere la dimensiunea noua partiție:

Desfășuram verificarea controlului FS și rebootăm:

# fsck -n / dev / sda7
# reboot

Îmbinați secțiunile

Recepția cu schimbarea dimensiunii partiției este potrivită pentru combinarea a două secțiuni adiacente într-una. Dacă partiția sistemului de fișiere ocupat mai puțin de jumătate plin, putem transfera pur și simplu informații de la o secțiune la alta, eliminați secțiunea eliberat și extinde restul, astfel încât a fost nevoie de spațiul eliberat. Cu toate acestea, această tehnică nu va funcționa dacă ambele secțiuni sunt pline și nu există posibilitatea de a transfera date pe alt disc sau pe un suport media. În acest caz, sistemele speciale de fișiere de suprapunere vă vor salva, permițându-vă să uniți virtual sistemele de fișiere și să le montați în același director.

Există cel puțin trei astfel de FS pentru Linux: unionfs, aufs2 și mhddfs. Primele două sunt incluse în kernel și, de fapt, sunt implementări diferite ale aceluiași mecanism, cu aufs2 datorită avansului său, iar stabilitatea este considerată opțiunea preferată. FS mhddfs (Multi-HDD FileSystem, mhddfs.uvw.ru) - fuse punerea în aplicare a aceleiași idei, care are un fișier plăcut vkusnostej creștere se deplasează în mod automat a doua partiție în cazul în care spațiul de la primul capăt.
Pe cine să folosiți depinde de dvs., vă voi arăta cum să folosiți fiecare dintre ele. Să presupunem că aveți trei secțiuni și o colecție mare de muzică pe care trebuie să le distribuiți între ele (nu se încadrează în una sau două secțiuni). Secțiunile sunt montate pe directoarele / mnt / disk1, / mnt / disk2 și / mnt / disk3, în fiecare dintre acestea directorul Music a fost creat în prealabil.

Sarcina: combinați toate cele trei directoare și le montați în directorul / home / vasya / Music. Cu ajutorul unionfs această problemă este rezolvată după cum urmează:

$ Sudo mount -t unionfs = -o dirs / mnt / disk1 / Muzica = RW: / mnt / disk2 / Muzica = RW: / mnt / disk3 / Muzica unionfs / home / vasya / Muzică

Cu ajutorul lui aufs2 - cum ar fi:

$ Sudo mount -t aufs none / home / vasya / Muzica br o-: / mnt / disk1 / Muzica = RW: / mnt / disk2 / Muzica = RW: / mnt / disk3 / Muzica = rw, crea = MFS, suma

Și cu ajutorul mhddfs - cum ar fi:

$ sudo apt-get instalați mhddfs
$ Sudo mhddfs / mnt / disk1 / Muzică, / mnt / disk2 / Muzică, / mnt / disk3 / Muzica / home / vasya / Muzică o- mlimit = 10G

În primul caz, noile date vor fi scrise mai întâi la secțiunea al cărei director este listat mai întâi și numai după completarea secțiunii vor scrie la următoarea. În cea de-a doua (datorită opțiunii mfs), directorul din secțiunea cu cel mai mare spațiu liber va fi selectat întotdeauna pentru înregistrare. În cel de-al treilea caz, directorul localizat pe o partiție cu mai mult de 10 GB de spațiu liber va fi selectat mai întâi și dacă nu este găsit, înregistrarea va merge la secțiunea cu cel mai mare spațiu liber. Pentru a nu introduce toate acestea manual după fiecare descărcare, puteți adăuga o intrare în / etc / fstab:

none / home / vasya / Muzica aufs br: / mnt / disk1 / Muzica = RW: / mnt / disk2 / Muzica = RW: / mnt / disk3 / Muzică, crea = MFS, suma 0 0

Clonarea și transferul de date

Odată cu modificările și consolidările partițiilor, s-au dat seama, dar dacă ați cumpărat un hard nou și doriți să transferați sistemul și datele existente la acesta? De fapt, totul este simplu, Linux este un sistem flexibil care poate fi ușor transferat pe un alt disc. Există cel puțin două moduri de a face acest lucru: transferați manual fișierele OS pe alt disc sau copiați întregul hard disk / partiție (ceea ce este convenabil atunci când se clonează o instalare pe mai multe mașini).

Luați în considerare prima metodă, luând ca bază distribuția Ubuntu 10.10. Pentru a-l copia pe un alt disc, nu aveți nevoie de altceva decât un disc și un set de utilități standard de linie de comandă. Iată o descriere pas cu pas a operațiunii:

1. Noi conectați al doilea hard disk la computer și porniți-l din LiveCD.

2. Determinați secțiunile de transferat. De obicei, Ubuntu este instalat fie într-o singură partiție (plus swap), fie în două: rădăcina și partiția / home. Creați aceleași partiții pe noul disc (utilizând cfdisk sau gparted pentru a face acest lucru cu ușurință) și schimbați. Nu uitați să faceți bootable partiția rădăcină.

3. Creați punctele de montare și conectați-le la partițiile discurilor vechi și noi (/ dev / sda - disc vechi, / dev / sdb - new):

# mkdir / mnt /
# mount / dev / sda1 / mnt / root1
# mount / dev / sdb1 / mnt / root2
# mount / dev / sda2 / mnt / home1
# mount / dev / sdb2 / mnt / home2

În comenzile mount, înlocuiți numerele de partiție dorite.

4. Copiați fișierele pe un disc nou:

# cp -ax / mnt / root1 / * / mnt / root2
# cp -ax / mnt / home1 / * / mnt / home2

5. Apoi, efectuați directorul chroot în / mnt / root2, repara / mnt / root2 / etc / fstab și setați grub. Dar pentru a face acest lucru, trebuie să montați / dev și / proc în / mnt / root2:

# mount -bind / dev / mnt / root2 / dev
# mount --bind / proc / mnt / root2 / proc

6. Mergeți la nisip (chroot / mnt / root2) și editați / etc / fstab:

/ dev / sda1 / ext4 eroare = remount-ro 0 1
/ dev / sda2 / home ext4 implicite 0 2
/ dev / sda3 niciun swap sw 0 0

Specificați numele partițiilor corespunzătoare în loc de / dev / sda1, / dev / sda2 și / dev / sda3. Nu uitați că, dacă vom pune noul disc pe locul celui vechi, numele acestuia va fi / dev / sda (și nu / dev / sdb, așa cum este acum).

7. Instalați grub (tot ceea ce este descris este relevant numai pentru grub2):

# grub-mkdevicemap
# grub-mkconfig> /boot/grub/grub.cfg
# sudo grub-install / dev / sdb

8. Folosind ieșirea de ieșire din chroot, opriți mașina, scoateți discul vechi, puneți unul nou în locul său, porniți aparatul.

Așa-numita clonare de disc, atunci când, în loc de fișiere individuale la noua unitate este transferată la imaginea întregului disc sau partiție, face mult mai ușor. Pentru aceasta, puteți utiliza utilitarul standard dd:

# dd dacă = / dev / sda din = / dev / sdb bs = 4k

Cu toate acestea, problema cu această abordare este că, în cazul în care dimensiunea noul disc este mai mare decât cel vechi, toate gigaocteți suplimentare de spațiu vor fi pierdute, iar apoi trebuie să crească, fie mărimea ultimei partiție, sau pentru a crea spațiu liber pe noua partiție. Cu toate acestea, dd este foarte util atunci când se clonează instalații de OS pe o mulțime de mașini.

La începutul anului în țara noastră au fost prima companie de hard disk-uri piețele Western Digital, care este dimensiunea sectorului a crescut de obicei 512 octeți la 4 KB (așa-numitul format avansată tehnologie). Potrivit companiei, noile discuri au o viteză mai mare de operare, o capacitate mai mare, cu costuri de producție mai mici și sunt pe deplin compatibile cu calculatoarele mai vechi. Cu toate acestea, se pare că a fi formatat în Linux, BSD, sau WinXP / Win2k3, noile drive-uri sunt nu numai că nu inteligent, dar, de asemenea, surprinzător de lent (pentru înregistrare observate 3 pierdere / 4 ori de viteză).

Noi, utilizatorii de Linux, nici una, nici cealaltă opțiune nu este potrivită, așa că va trebui să o faceți singur. Din fericire, nimic nu este complicat în procesul de aliniere a partițiilor, și mai jos voi arăta cum se face corect cu cfdisk standard.
Începutul primei secțiuni principale este destul de ușor de aranjat în 64 de sectoare. Pentru aceasta, rulați fdisk cu opțiunea '-u':

Introduceți comanda „n“ (secțiune nouă), denumită în continuare „p“ (secțiunea majoră), apoi un „1“ (prima secțiune), întrebarea cu privire la începutul primului sector introduce 64, ca ultimul sector introduce partiția dorită în mărime sectoare (poate fi calculați prin împărțirea mărimii partiției în octeți cu 512). Înregistrăm tabela de partiții cu comanda "w". Secțiunea poate fi apoi formatată și conectată:

# mkfs.ext4 / dev / sdb1
# mount / dev / sdb1 / mnt

Toate celelalte secțiuni majore ale discului trebuie, de asemenea, să fie aliniate prin selectarea sectorului inițial astfel încât numărul său să fie un multiplu de opt. Sarcina poate fi simplificată dacă, la crearea fiecărei secțiuni, se calculează numărul ultimului său sector astfel încât numărul său să fie un multiplu de opt și să se scadă o unitate. Apoi, următoarea secțiune va obține numărul sectorului corect în mod implicit.

Cu secțiunile extinse, totul este mult mai complicat. Fiecare partiție extinsă poate conține până la patru sub-secțiuni, începând cu prima dintre care este, de asemenea, locația implicită în 63 de sectoare (aici nu este în optimizarea eliberării în urmă cu mai mult de 20 de ani, și că partiția extinsă a fost inventat pentru a emula un disc fizic). Prin urmare, trebuie mai întâi să creați o partiție extinsă cu un multiplu sector inițial de opt, și apoi să creați toate secțiunile sale interne cu sectorul primar ca un multiplu de opt. Aici, un cfdisk nivel scăzut devine instrument prea periculos, deci cel mai bine este să folosiți programul despărțit cu opțiunea „-align optimă“, prin care toate secțiunile create vor fi localizate în sectoarele corecte.

Da, aproape tot ceea ce a menționat în acest articol se poate face cu ajutorul software-ului grafică ușor de utilizat, dar, în practică, necesitatea acestor instrumente vine exact în momentul în care acestea nu sunt la îndemână. Și apoi, fără o teorie și o conștientizare clară a modului în care funcționează toate acestea, nu puteți face.

Redimensionarea unei partiții NTFS

1. Instalați ntfsprogs:

$ sudo apt-get instala ntfsprogs

2. Desfaceți partiția NTFS:

$ sudo umount / dev / sda1

$ sudo ntfsresize -s 10000M / dev / sda1

4. Folosind fdisk, ștergeți partiția NTFS și creați o nouă cu dimensiunea de 10000 MB;

5. Rebootăm în Windows și îi oferim posibilitatea de a efectua o scanare FS.

Clonarea unui disc pe altă mașină cu mijloace improvizate

Pe unitatea sursă efectuăm:

# dd dacă = / dev / sda bs = 4k | netcat 1234

# netcat -l -p 1234 | dd din = / dev / sdb bs = 4k

Reduceți dimensiunea imaginii dd

Puteți reduce în mod semnificativ dimensiunea fișierului cu secțiunea de imagine făcută dd, în cazul în care pre-zabesh cu zerouri (echipa a doua ar trebui să ducă la epuizarea spațiului de pe sistemul de fișiere, este normal)

# mount / dev / sda1 / mnt
# dd dacă = / dev / zero = = / mnt / zero bs = 4k
# rm -f / mnt / zero

În timpul transferului FS la o altă unitate în loc de nume de partiții în fstab pot fi specificate și adoptate în Ubuntu UUID, care poate fi găsit cu ajutorul echipei blkid:

$ sudo blkid / dev / sda1

Progresul copierii dd poate fi găsit prin tastarea următoarei comenzi în terminalul următor:

$ sudo ceas-n60 killall -SIGUSR1 dd

Distribuiți acest articol cu ​​prietenii dvs.: