Situatie
SSD-ul are alta aranjare si ratiune de functionare decat un HDD normal, in primul rand atunci cand scrie data in sectoarele sale face mai multe operatiuni.
Sectoarele unui SSD sunt mult mai mari decat la un HDD normal, de obicei ajungand si la 512KB. Ca sa scrie ceva in ele sau sa stearga va copia cei 512KB si ii va rescrie cu modificarile aferente.
Din cauza ratiunilor de mai sus se recomanda o schema de formatare complet diferita sub Linux. Necesitatea schimbarii este evidenta mai ales din cauza vitezei net superioare, dar mai ales pentru securitatea datelor.
Solutie
In primul rand trebuie sa convingem Fdisk-ul sa lucreze cu alte Head-uri si alte Sectoare.
fdisk -H 32 -S 32 /dev/sda
Tabelul cu toate combinatiile posibile:
Cylinder size (Times 512k)
1024K (x2)
-S 16 -H 128
-S 32 -H 64
512K (x1)
-S 8 -H 128
-S 16 -H 64
-S 32 -H 32
256K (x0.5)
-S 4 -H 128
-S 8 -H 64
-S 16 -H 32
-S 32 -H 16
128K (x0.25)
-S 2 -H 128
-S 4 -H 64
-S 8 -H 32
-S 16 -H 16
-S 32 -H 8
Foarte important la inceperea formatarii, se alege ca prim cilintru 2 nu 1.
First cylinder: 2
Mai jos gasim un exemplu:
fdisk -H 32 -S 32 /dev/sda
The number of cylinders for this disk is set to 15711.
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 with disk identifier 0x8cb3d286.
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 15711.
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): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-15711, default 1): 2
Last cylinder, +cylinders or +size{K,M,G} (2-15711, default 15711):
Using default value 15711
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Cum trebuie sa calculam numarul de cilindrii pentru un SSD normal:
Pentru a crea o partitie de 1 GB facem urmatoarele calcule:
se presupune pentru simplitatea operatiilor 1GB = 1000000K
avem prin urmare: 1000000/512=1953.125
apoi impartim 1953.125 la 8 si avem 244.140625 ( aceasta operatiune este necesara pentru a verifica daca rezultatul este divizibil cu 8 )
rotunjim la 244 si inmultim cu 8 inapoi si vom obtine 1952
Aceasta cifra reprezinta numarul de sectoare necesare pentru o partitie de 1GB perfecta pentru swap spre exemplu.
Prin urmare prima partitie pleaca de la 2 si se opreste la 1953 ( total 1952 de sectoare )
Leave A Comment?