Lista pecet@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [PECET] Odświeżanie SSD

To: pecet@man.lodz.pl
Subject: Re: [PECET] Odświeżanie SSD
From: Marcin Debowski <agatek@INVALID.zoho.com>
Date: Wed, 01 Feb 2023 02:11:27 GMT
On 2023-01-27, pueblo <nomail@nomail.pl> wrote:
> W dniu 2023-01-26 o 01:53, Marcin Debowski pisze:
>> On 2023-01-25, pueblo <nomail@nomail.pl> wrote:
>
>
> Już wcześniej sam pomyślałem o takim rzeźbieniu jakie proponujesz, ale 
> miałem i mam obawy, czy nie pominę jakiejś informacji i zmieni się 
> sygnatura dysku, jakieś id, czy guid partycji - i się zrobi kaszana, 
> windows zdeaktywuje itp. No nie jestem biegły w tych niuansach dyskowych.

blkid Twoim przyjacielem. 
blkid > moje_hdd_id 
zapisze obecne na maszynie urządzenia blokowe z ich id do pliku

> Ale spróbuję, tylko z pewną modyfikacją.
>
> Tak to wygląda teraz
> fdisk -l
>
> Disk /dev/sda: 238.49 GiB, 256060514304 bytes, 500118192 sectors
> Disk model: PLEXTOR PX-256M8
> Units: sectors of 1 * 512 = 512 bytes
> Sector size (logical/physical): 512 bytes / 512 bytes
> I/O size (minimum/optimal): 512 bytes / 512 bytes
> Disklabel type: gpt
>
>
> Device         Start       End   Sectors   Size Type
> /dev/sda1       2048    206847    204800   100M EFI System
> /dev/sda2     206848    239615     32768    16M Microsoft reserved
> /dev/sda3     239616 499074452 498834837 237.9G Microsoft basic data
> /dev/sda4  499075072 500115455   1040384   508M Windows recovery environment

Jakoś przegapiłem/zapomniałem, że to dysk systemowy m.in, ale to w sumie 
tylko trochę więcej grzebania.

>> 
>> Wtedy weź sobie:
>> 
>> 1) skurcz tę partycję z ntfs pod windows (pod Linuksem tez można, ale
>> tak będzie najprościej);
>> 
>> 2) zrób jej kopie pod Linkuksem (np. dd, ale obraz samej partycji, nie
>> całego dysku);
>> 
>> 3) zapisz sobie wszystkie ustawienia z gpt co by móc odtworzyć - nie mam
>> doświadczenia z gpt, ale zakładam, że ręcznie odtworzenie wystarczy (pod
>> linuksem zapisz sobie wynik sudo fdisk -l);
>> 
>
> Tu bym zrobił tak, że zmniejszę na maksa sda3 i przesunę do niej sda4
> A potem tak
> dd if=/dev/sda of=Kopia.backup count=??
> I tu mam małe niewiadome
> Czy w count wpisać po prostu ostatni sector sda4 jaki mi pokaże fdisk 
> -l(oczywiście po zmniejszeniu i przesunięciu partycji j.w.) Pytam, czy 
> dd liczy tak samo sektory, jak fdisk? Nie chciałbym się przekonać, że 
> dla jednego to są logiczne, a dla drugiego fizyczne.

Nie musisz dawać count. Wtedy przekopiuje Ci całe urządznie blokowe lub 
jego partycję. Jak chcesz zrobić np. dla bezpieczeństwa pełny dysk to 
też się potem da manipulować partycjami w sensie ich montowania etc. 
Zainteresuj się programikiem kpartx.

> Opcja bs w dd.
> Domyślnie jest to 512, więc taka powinna zostać? W tym przypadku sektor 
> fizyczny jest taki sam jak logiczny, ale co by było gdyby dysk miał 
> sektory fizyczne 4096 - trzeba by ustawiać bs=4096?

Nigdy nie przywiązywałem do tego znaczenia innego niż prędkości 
kopiowania (w kontekście kopiowania). ZCW to dd nie dopełnia w żaden 
sposób różnicy (jeśli np. wielkość dysku mod bs nie jest zero). bs to MZ 
tylko wielkość bufora alokowanego oraz zmienna pozwalająca sterować ile 
i jakie wielkie na raz.

>> 4) zrób blkdiscard na całym dysku, z opcją -s (secure) jeśli dysk
>> obsługuje;
>> 
> Jak już się bawić to na całego. Zrobię jeszcze Ata secure erase przez 
> hdparm, tylko nie wiem co pierwsze - to, czy blkdiscard?
>
>> 5) odtwórz ręcznie strukturę partycji gpt (sfdisk lub inny pozwalający
>> dokładnie definiować granice etc.) - robienie tego ręcznie będzie miało
>> taką zaletę, że zostaną zapisane tylko te sektory które są niezbędne;
>> 
>
> No i tu jest mały problem, bo gpt ma zapasową kopię w ostatnich 34 
> sektorach dysku, które nie zostaną uwzględnione w pliku obrazu.

Dlatego sugeruję aby wklepać tablicę ręcznie. Chyba nie sądzisz, że taki 
sfdisk zapomni o zapasowej kopii? A jak będzisz się starał skopiować 
newralgiczne obszary, to musisz wiedzieć które. Przez "ręcznie" rozumiem 
definiowanie pod sfdisk (dodaj partycvje etc.) a nie grzebanie w 
partycji na poziomie dysku.

> Dd chyba nie umie skopiować do obrazu zakresu sektorów niestartującego 
> od 0? Gdyby mógł, to bym zrobił po prostu kopię tych kilkudziesięciu 
> ostatnich sektorów dysku.

Widzi całe urządzenie więc dlaczego nie?

> Nie wiem, co się stanie, jak przywrócę partycje z pliku obrazu. Czy 
> kopia GPT się sama odtworzy, jeśli jej nie będzie? Może uda mi się 

sama się nie odtworzy, ale jak kopiujesz wszystko to masz wszystko

> czegoś nie spaprać i skopiuje wcześniej te ostatnie sektory jakimś 
> edytorem i je przywrócę osobno, żeby były identycznie jak wcześniej.
>> 6) przebutuj, bo czasami tablice partycje dla dysku nie są aktualizowane
>> w jądrze;
>> 
>> 7) przekopiuj obraz ntfs z powrotem na dysk;
>
> Czyli zrobiłbym to tak:
> dd if=Kopia.backup of=/dev/sda  count=X(taki sam jak przy tworzeniu obrazu)
> Będzie dobrze?

j.w. :)

> W mojej modyfikacji twojego przepisu zakładam, że nie ma różnicy w 
> sposobie zapisu przywracanego obrazu w obu przypadkach - czyli z backupu 
> partycji przez dd i backupu takiego jak sobie wymyśliłem, czyli od 
> sektora A do B.(więcej niż jedna partycja) Rozmiarowo będzie to mniej 
> niż 1GB więcej do backup/restore.
> Zostanie mi tylko przesunąć sda4 i rozszerzyć sda3 identycznie, jak było 
> na samym początku
>
>> 8) i teraz trzeba ztrimować dysk pod tym ntfs. Niby fstrim to robi, ale jak
>> sprawdzam u siebie to zawsze uwalnia tyle samo więc coś wydaje się być
>> nie tak.
>> 
> Czyli co - nie użyć wtedy fstrim pod mintem?

Spóbować można, ale u mnie coś jakby nie działa.

-- 
Marcin

<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>