12 mai 2013

Cum mi-am busit tabela de partitii

Sincer, a fost simplu. Mai complicat a fost sa o recuperez.

Incercand sa copiez pe un stick elementary os, am folosit utilitarul dd. (il folosesc de cand am trecut pe Linux)

Ce face acest dd? Pai e simplu. Citeste de undeva de unde-i dai tu, si scrie bit cu bit ce ii dai sa citeasca undeva unde-i dai sa scrie. E ca si cum ai scrie imaginea in oglinda a unui "fisier". Cand folosesti dd, trebuie sa fii atent la un singur lucru: unde ii dai sa scrie. Fiindca imaginile ISO live se scriu direct in block device (sdX) si nu pe partitie, ai nevoie de root ca sa poti porni scrierea. Si m-am pus pe treaba

sudo dd if=elementaryos-beta2-amd64.20130506.iso of=/dev/sda
[sudo] password for cristi:
//si aici m-am prins ce-am facut
^C44961+0 records in
44961+0 records out
23020032 bytes (23 MB) copied, 1,38358 s, 16,6 MB/s

Din fericire am scris doar 23 de MB si mi s-a afectat doar partitia root, grub-ul, tabelul de partitii si ce-o mai fi fost in primii 23 de MB ai HDD-ului meu.

M-am prins ce-am facut si mi-am zis: fii calm bagati-ai pula. Injuri de trei ori, rezolvi o singura data.

Cel mai important in cazurile astea e sa ramai calm, sa analizezi ce ai pierdut si cum sa recuperezi fara sa inchizi sistemul. Cu cat recuperezi din sistem mai mult fara sa dai restart, cu atat o sa iti fie mai usor.

Asa ca am pornit repede testdisk si m-am uitat daca descopera partitiile. Le-a vazut, le-am scris pe disc. fdisk arata normal, am scris si cu el partitiile. Am facut update de sistem, dar mi-a dat cu fail. (Trebuie sa reinstalez Linuxul)
La restart evident ca faila din cauza ca nu gasea imaginea de boot, asa ca am scos externul si am bootat un Linux ca sa pot formata root-ul. Stupize-stupize! Gparted vedea HDD-ul ca un mare dreptunghi gri si nealocat. Hmm, ciudat! Pornit iara fdisk, sfdisk, totul era normal. Rescris iara paritiile, gparted ciuciu.

Problema nu era ca nu puteam sa formatez, dar

1. Ai nevoie de partitii intr-un installer grafic (si vreau sa instalez ceva in timp scurt)
2. Nu vreau sa o iau de la capat cu Arch, pentru ca acum chiar n-am timp si am nevoie de ceva care in 30 de minute sa fie gata (1)
3. Arch-ul se instaleaza dintr-un chroot, si cum fdisk&co vedeau si montau partitiile fara probleme, puteam sa-l instalez repede, dar vezi 2.

Hochei. Tot ce era grafic (inclusiv ochii mei) ma dezamagea cand era vorba de modficarea partitiilor.

>parted
Can't have a partition outside the disk

Aha! Sărci pe Google. Solutia: geometria partitiilor nu era aliniata corect. Problema era asa: partitia extinsa.. era prea extinsa. Discul are
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
si partitia extinsa se ducea pe pula, in afara discului. Era pe undeva intre carcasa laptopului si carcasa HDD-ului, dar clar nu voia sa intre-n disc.

Buun, si acuma ce facem? Ne luam cu mainile de cur si sarim in sus de fericire, pentru ca rezolvrea e simpla: fixparts. El se lauda ca "It can repair mis-sized extended partitions."

Pentru instalare, trebuie sa cautati pachetul gdisk. Apoi, daca ati folosit vreodata fdisk in CLI, e totul clar si nu are nevoie de explicatii. Printati tabela, scrieti MBR-ul si restart.
Do you want to proceed? (Y/N): y
Done writing data!
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
Atat! S-a terminat tot. Asta a fost. Gparted vede partitiile, totul a revenit la normal. (ma rog, mai putin vreo 22 de MB de Archlinux)

Acum ma gandesc ce Linux sa instalez.