Transferarea sistemului linux pe alt hard disk cu reconstrucție de partiții

Odată cu mult timp în urmă într-o galaxie îndepărtată, trebuia să-mi transfer sistemul de la un hard disk la altul și să folosesc groază de proprietate, așa cum n-am vrut. Googling și căutând cu ajutorul altor motoare de căutare, am găsit o soluție pentru mine, ceea ce poate părea ridicol pentru administratorul Linux, dar mi-a ajutat foarte mult atunci.







În general, aici este. Bateți picioarele, tăiați în bucăți. Întâlnește!

Primul lucru pe care trebuie să-l facem este să marcați noul hard disk în funcție de dorințe și, eventual, să excludem erorile marcajului anterior (dacă ceva pe discul original nu este așa).

Să analizăm un exemplu concret al sistemului meu. Voi transfera sistemul de la HDD = 80Gb la HDD = 20Gb.

Discul meu de 80 GB este etichetat după cum urmează:

/ dev / hda1 - / boot (250 Mb)
/ dev / hda2 - swap (1Gb)
/ Dev / hda3 - extins (20Gb) (cuprinde / dev / hda5, / dev / hda6, / dev / hda7, / dev / hda8)
/ dev / hda5 - / (5Gb)
/ dev / hda6 - / tmp (512Mb)
/ dev / hda7 - / usr (10Gb)
/ dev / hda8 - / var (5Gb)
/ dev / hda4 - / home (54Gb)

/ home este foarte mult blocată de informații, pentru că nu o includ în clonare.

După ce am expus jumperii așa cum era de așteptat, am conectat un nou HDD la sistem. A luat eticheta hdb
Puteți să îl marcați cu orice utilitate convenabilă pentru dvs. Mi-a fost mai ușor să folosesc GPARTED - deci este mai clar din punct de vedere vizual, și văd imediat cât spațiu este ocupat de datele de pe această parte sau parte, ceea ce va ajuta să determinați dacă merită să alocați atât de multe (sau puține) locuri.

Am alocat noul disc (/ dev / hdb) după cum urmează:

/ dev / hdb1 - / boot (250 Mb)
/ dev / hdb2 - swap (1Gb)
/ dev / hdb3 - extinsă (14Gb) (include / dev / hdb5, / dev / hdb6, / dev / hdb7, / dev / hdb8)
/ dev / hdb5 - / (1Gb)
/ dev / hdb6 - / tmp (512Mb)
/ dev / hdb7 - / var (5Gb)
/ dev / hdb8 - / usr (7Gb)
/ dev / hdb4 - / home (4Gb)

Următorul pas este de a monta toate partițiile create pe noul HDD la sistemul existent.
Pentru aceasta, am creat directorul / backup pe sistemul existent. în care am creat subdirectoriile / boot, / root, / var, / usr (/ tmp - nu este nevoie), în funcție de partițiile la care am împărțit noul hard disk.
Apoi efectuăm auto-instalarea:

mount sudo / dev / hdb1 / backup / boot
mount sudo / dev / hdb5 / backup / rădăcină
mount sudo / dev / hdb7 / backup / var
mount sudo / dev / hdb8 / backup / usr

Așa că am ajuns la cel mai interesant, dar în nici un caz cel mai simplu loc, la copierea datelor.
Spre deosebire de Windows, Linux vă permite să vă copiați complet. Dar trebuie să ne amintim un punct important - sistemul are atribute pe director și fișiere, precum și simbolinks și hardlink-uri. Deci, este necesar să copiați sistemul astfel încât toate aceste conexiuni să nu fie pierdute. Pentru o astfel de procedură, potrivit unor experți mari, cea mai bună comandă este comanda tar.
Ideea este că nu vom copia fișierele de pe disc, și le va purta prin așa-numita „conducta“ sau „flux“ la receptor HDD.

Pentru a simplifica procedura de transfer, am scris un backup.sh script:

#! / bin / sh
cd /
tar-cf - dev initrd.img opt srv bin cdrom etc initrd lib sbin sys vmlinuz | (cd / backup / root; tar-xvpf -)
cd / boot
tar-cf - * | (cd / backup / boot; tar-xvpf -)
cd / var
tar-cf - * | (cd / backup / var; tar-xvpf -)
cd / usr
tar-cf - * (cd / backup / usr; tar-xvpf -)

un pic explica ce este:

«Cd /»
- Du-te la rădăcină

"Tar-cf - dev initrd.img opt srv bin cdrom etc initrd lib sbin sys | (cd / backup / root; tar-xvpf -)
"- protejarea directoarelor și a fișierelor listate cu transferul acestora la distribuția pe HDD-ul care primește.

Aflați ce directoare și fișiere trebuie să le transferați cu ușurință. Pur și simplu executați comanda "ls /", prin urmare listați sistemul începând cu /.
În cazul meu, acesta este:

ls /
backup boot dev acasă initrd.img media opt root srv tmp var






bin cdrom etc initrd lib mnt proc sbin sys usr vmlinuz

Din toate aceste "bune" trebuie să selectăm ce va fi în /.
Deci, așa cum am alocat partiții separate pe disc în / boot, / var, / tmp, / usr și / home. se pare că ar trebui să fie sărite peste acest pas. Prin urmare, vom lua doar dev initrd.img opt srv var
bin cdrom etc initrd lib sbin sys vmlinuz

Și cu restul este mai ușor:
cd / boot
- mergeți la bootul existent / boot

tar-cf - * | (cd / backup / boot; tar-xvpf -)
mutați conținutul / boot la / backup / boot

Deci, rulați backup.sh script-ul și mergeți la odihnă pentru o vreme. Mi-a luat cam 10 minute.

Un moment mai important pe care nu l-am mai acordat la început, pentru care am plătit mai mult timp și o durere de cap.

Nu este suficient să copiați datele în / var, / tmp, / usr.
După toate procedurile de transfer, avem nevoie pentru a crea directorul de pe discul de recepție, ca punct de montare a înseși partițiile (și toate punctele de montare, pe care am exclus în transfer - / home, / media / tmp, / var, / mnt, / proc, / usr) obligatoriu cu aceleași atribute! Aceasta este:

sudo mkdir / backup / root / home
sudo mkdir / backup / root / media
sudo mkdir / backup / root / tmp
sudo mkdir / backup / root / var
sudo mkdir / backup / root / mnt
sudo mkdir / copie de rezervă / root / proc
sudo mkdir / backup / root / usr

care atribute pe director pot fi găsite tastând comanda ls -la / pe sistemul sursă. Dar, în plus față de / tmp, ar trebui să existe un proprietar rădăcină al grupului rădăcină și dreptul de 766. On / tmp, trebuie să setați permisiunile 777.

Acum trebuie să reparăm fstab pe HDD-ul de recepție. dacă este necesar (dacă dintr-o dată ați deformat discul). Și trebuie doar să remediați meniul.lst încărcătorul de încărcare GRUB.

În UBUNTU că în fstab, că în meniu.lst toate discurile sunt înregistrate prin UUID și nu doar / dev / hda.
aflați ce UUID puteți utiliza cu comanda: ls -l / dev / disk / by-uuid. pe ieșire ar trebui să fie ceva de genul:

Aici avem nevoie doar de numerele "11815c66-5ae7-4497-9039-51de9adef664", de exemplu. Acesta este UUID-ul partiției swap (în cazul meu).

din meniu.lst se vor pronunța următoarele linii:

kernel /vmlinuz-2.6.22-14-generic root = UUID = d4404ea9-0a8e-4a4c-b72d-10a5edd697be ro locale stropi liniștit

kernel /vmlinuz-2.6.22-14-roeneric rădăcină = UUID = d4404ea9-0a8e-4a4c-b72d-10a5edd697be ro singur


Nu uitați faptul că, deși sistemul este copiat pe disc, acesta nu poate fi încărcat încă, deoarece nu am instalat bootloader-ul.
Acest lucru se face simplu:
Luăm discul de instalare UBUNTU și boot-ul.
du-te la consola ctrl + f1

sudo su
haleală
găsi / grub / stage1
root (hd0,0) scrieți aici ceea ce a emis comanda anterioară
setup (hd0) aici scriem același lucru, dar înainte de prima virgulă.
părăsi

Toate - scoatem discul din sistem, conectăm, verificăm. Totul a lucrat pentru mine.

Deoarece nu am transferat / acasă - sistemul a blestemat faptul că eu ca utilizator am un dosar de domiciliu pe care nu îl am. Am acționat într-un mod barbar - userdel% username% și apoi adduser% username%.

Pur și simplu nu mi-a păsat. Și prea leneș să așeze atribute. Și sistemul a făcut totul pentru mine.

P.S. Nu vă speri prea mult pentru, probabil, o cale învechită, dar la acel moment a funcționat și a funcționat bine! (De data aceasta puteți calcula în funcție de versiunea kernelului menționat în acest articol).

Transferarea sistemului linux pe alt hard disk cu reconstrucție de partiții

Instalați Window7 (64Bit) pe discul GPT, pe plăcile de bază cu EFI, fără USB / DVD
Trebuie să clarificăm imediat că va fi instalat Win lângă distribuția linux. Adică, calculatorul ar trebui să aibă grub-efi. Instalarea este posibilă numai pe sistemul Windows pe 64 de biți. Deoarece avem o taxă EFI, pe disc există cel puțin o partiție FAT32. De asemenea, trebuie să creăm o partiție în care să despachetăm imaginea Win.

Transferarea sistemului linux pe alt hard disk cu reconstrucție de partiții

Transferarea sistemului linux pe alt hard disk cu reconstrucție de partiții

Transferarea sistemului linux pe alt hard disk cu reconstrucție de partiții

Adunarea firmware-ului personalizat OpenWRT
Nu cu mult timp în urmă, am fost nedumerit prin creșterea pe routerul meu D-Link DIR-320 server OpenVPN. Dar după instalarea firmware-ului OpenWRT sa dovedit că nu a fost suficient spațiu pe unitatea flash 4 megabyte a routerului pentru a instala OpenVPN. Modul de a ieși din situație a fost să vă construiți propria versiune a firmware-ului cu ajutorul Generatorului de Imagini, care a permis același set

Transferarea sistemului linux pe alt hard disk cu reconstrucție de partiții







Trimiteți-le prietenilor: