Re: soft do powiekszania partycji (systemowej)

Autor: Anerys <spam.nie.jest_at_spoko.pl>
Data: Wed, 12 Sep 2012 02:48:38 +0200
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=response
Message-ID: <504fdbe7$1@news.home.net.pl>

Użytkownik "1634Racine" <1634_at_Racine.pl> napisał w wiadomości
news:504faf98$0$1294$65785112_at_news.neostrada.pl...
> Zalozmy, ze biore "jakis" partycjoner, sa w sumie podobne.
> Jest C: --------- D: ---------- E:
> Chce zwiekszyc C: kosztem E:
> ppm na C: i "resize", i mam dla C: "before" i "after" = 0, a musze miec
> cos
> >0 na "after", czyli wziac to z... D? ale D nic nie ma "before"... Wiec
> najpierw przekazac wolna przestrzen z E do D...
> Szalenstwo :)

Zaraz to rozpiszę.

>
> Jesli mozesz: pls w punktach, algorytmowo, da sie w paru slowo-punktach :)
> dzieki.

Za moment.

> Jest tylko jedno "ale" (niżej) i z powodu tego "ale" jest pytanie: jakim
> innym softem lekko calosc podreperowac/"wygładzić" z powodu ponizszych
> bledow sektorowo-geometrycznych?

Najpierw w BIOSie sprawdzić, czy dostęp do dysku jest LBA, czy Large, czy
Normal. Powinien być LBA.
Jeśli tu gra, a geometria kwiczy, to TestDisk. Ostrożnie, źle wpisując
wartości można dużo popsuć. Jeśli partycje zachodzą, i/lub zaczynają się i
kończą nietypowo (1), to bądź szczególnie ostrożny.

> po powiekszeniu partycj systemowej tylko uruchomilem - tak "dla zabawy" -
> inne partycjonery i dokladnie tylko jeden, portable Norton Partition
> Magic, od razu cos wyczaja i daje info, że:
> - partition's drive letter cannot be identifed

W systemie z linii NT litera dysku nie jest wymagana. Jej obecność bardziej
jest ze względu kompatybilności, niż z potrzeby. Mój swap nie ma litery,
jest zamontowany, jak w Pingwinie, w strukturze katalogów.

> - & disk error were detected
> - & disk geometry error(s)were detected
> Error #105: Partition didn't begin on head boundary.
> ucBeginHead expected to be 0 or 1, not 22.
> Error #106: Partition didn't begin on head boundary.
> ucBeginSector expected to be 1, not 17.
> Error #105: Partition didn't begin on head boundary.
> ucBeginHead expected to be 0 or 1, not 22.
> Error #106: Partition didn't begin on head boundary.
> ucBeginSector expected to be 1, not 17.

Tu już należy być ostrożnym. I na 90% nie pozwalać, aby coś wtedy naprawiał,
jeśli to zaproponuje, za duże ryzyko.

>
> A wszystko niby działa OK... Ale jakimz innym softem troche to
> podreperowac?

System może odpalać, bo np. BootSektor leży poniżej fizycznego sektora 239
(od zera licząc), i łapie się na widzialność z BIOSa. A potem już temat
przejmuje loader i olewa BIOSowe nastawy (tego się spodziewam). Dzięki temu
zresztą - wyłączenie dysku w BIOSie, mogłem kiedyś poprawnie położyć NT4 na
kompku serwerowym (Globalyst 730, staruszek, co nie lubi XP), bo nie dało mu
się przemówić, że ma startować z dysku SCSI. Najprawdopodobniej nie odpali
ci się konsola odzyskiwania, jeśli ją zainstalujesz, wywali błąd odczytu
dysku.

>
>
>
> JAKBY KOGOŚ INTERESOWALO - OTO DOKLADNIEJ BŁĘDY:
> ===========================================================================================================
> Disk Geometry Information for Disk 1: 91201 Cylinders, 255 Heads, 63

Tu wygląda dobrze, ale co jest zapisane w tabicy partycji, trudno orzec.

> Sectors/Track
> System PartSect # Boot BCyl Head Sect FS ECyl Head Sect
> StartSect NumSects
> ===========================================================================================================
>
> [....................]
>
> Error #105: Partition didn't begin on head boundary.
> ucBeginHead expected to be 0 or 1, not 22.
> Error #106: Partition didn't begin on head boundary.
> ucBeginSector expected to be 1, not 17.
> [................]
> Error #105: Partition didn't begin on head boundary.
> ucBeginHead expected to be 0 or 1, not 22.
> Error #106: Partition didn't begin on head boundary.
> ucBeginSector expected to be 1, not 17.

To sugeruje, ze może być nie-halo. Wtedy podwójnie ostrożnie.

>
> ===========================================================================================================
> Partition Information for Disk 1: 715,402.4 Megabytes
> Volume PartType Status Size MB PartSect # StartSect
> TotalSects
> ===========================================================================================================
> C: NTFS Pri,Boot 12,284.0 0 0 63
> 25,157,727

ok. 700 kB z kawałeczkiem dziury, więc może być.

> D: NTFS Pri 10,243.9 0 1 25,159,192
> 20,979,488

A tu już ok. 7.5 MB, ale w drugą stronę, czyli...

> E: NTFS Pri 692,880.9 0 2
> 46,124,0171,419,020,048
>
> Error #113: Primary partition starting at 46124017 overlaps previous
> partition.

...partycje zachodza na siebie (nie jest to bezpieczne). E powinna zaczynać
się w sektorze o numerze conajmniej 46,138,680. A zaczyna się 46,124,017,
ergo, 14664 sektory zachodzą na siebie. Najbezpieczniejszym rozwiązaniem
wydaje mi się na chama przerzucić dane z partycji D gdzieś na bok, fizycznie
wpisać edytorem dyskowym partycję jako nieistniejącą, zero, nie ma, out...
(dlatego najpierw ewakuować dane), restart, aby wciągnęło zmianę, rozciagnąć
C ile trzeba i założyć D na nowo. Może okazać się konieczne wyzerowanie
podpisu dysku.
Jednak zanim się to zrobi, należy sprawdzić, czy geometria w BIOS odpowiada
geometrii zapisanej na dysku. To będzie działać, bo system dość szybko
przejmuje samodzielnie obsługę dysku (BIOSu potrzebuje tylko do odpalenia).
Ale sytuacja, gdy partycje zachodzą na siebie (co jest jednym z objawów
rozwalonej geometrii, w rzeczywistości zachodzić nie muszą) jest IMHO mocno
niezdrowa - jeśli zapełnisz D do końca, to możesz rozwalić system plików na
E, a odzysk danych będzie trudny, jeśli zostaną nadpisane struktury
alokacji, czyli MFT z metaplikami do spółki.

(1) Typowe dla rozwalonej geometrii.
Zasadniczo, partycja powinna zaczynać się (w układzie CHS) xxxx 001 01
startowa (pod głowicą zerową jest MBR i przyległości, podobnie w pomocniczej
tabeli partycji) oraz wolumin na rozszerzonej, xxxx 000 01 zwykła i
rozszerzona, a kończyć się yyyy 254 63. (właśnie, nie 255, tylko 254 -
głowice, od dawna wirtualne, liczymy od zera, a jest ich 255, sektory zaś
liczymy od jedności) - tak liczymy CHS dla trybu adresowania LBA. Dzięki
niepełnej liczbie oszczędzamy jeden bit na numer głowicy i sektora. Taka
trochę kłopotliwa zaszłość historyczna... W trybie LARGE, głowic jest 240
(0-139) a sektorów 16 (hehe, tutaj się nie oszczędza bitu...), numer
cylindra należy odpowiednio przeliczyć, o głowicach i sektorach nie mówiąc.
Jasne więc, czemu numery CHS, gdy się źle zapisze geometrię, wyglądają tak
dziwacznie.
Fizycznie i formalnie nie ma przeszkód, aby partycja zaczynała się np. xxxx
143 27, a kończyła yyyy 091 44. I tak jest to przeliczone na LBA. ALe jak
wspomniałem, pewne zaszłości nie zostały porzucone, gdy liczby te nie są
dopchane do wartości granicznych, to niektóre programy wołają Houston mamy
problem, i niekiedy głupieją, a BIOSy miewają problemy.

No dobra, jak już geometria będzie cacy, to procedura wygląda tak (C oznacza
partycję C, D i E odpowiednio):
Stan początkowy, niech będzie taki: (liczby ekhm, z "dupy", czy bardziej
elegancko, z "chmur" (nie obliczeniowych, którym nie ufam za grosz) wyjęte,
ale chodzi o zasadę, tak łatwiej pokazać...

CCCCCCCCCCDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE (10C, 10D, 30E)
Wolnego mamy, przykładowo, odpowiednio 3D i 12E
Jeśli chcemy przydać 2C (no, do 3C, ale dla pewności, zostawiajmy po
jednostce wolnego, więc pozostanę przy 2C), to robimy tak:
kurczymy D o 2 jednostki, powstanie więc coś takiego (gwiazdki, to wolne
miejsce):
CCCCCCCCCCDDDDDDDD**EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE (10C, 8D, 2*, 30E)
Przesuwany więc D w góre i mamy:
CCCCCCCCCC**DDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE (10C, 2*, 8D, 30E)
Zrobiło się nam wolne miejsce, o które możemy rozciągnąć C i otrzymać układ:
CCCCCCCCCCCCDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE (12C, 8D, 30E)
Done! Zrobione, C rozciagnięte. Jeśli na D potrzeba więcej miejsca, to
postępujemy analogicznie majtając D i E.

Jeśli potrzebujesz więcej miejsca, np. przydać do C 10 jednostek, to należy
zrobić tak:
Obkurczamy maksymalnie D (z zostawieniem jednostki na wszelki zaś, niekiedy
przy zbytnim ścieśnieniu może pojawić sie błąd systemu plików, nie musi,
wtedy obkurczamy do oporu, jeśli nie mamy wyboru), czyli o 2 jednostki,
przyjęliśmy dla przykładu, powtarzam, ze wolnego jest na partycjach
odpowiednio 3D i 12E. Obkurczamy E o 8 jednostek, następnie E przesuwamy
maksymalnie w górę, potem robimy to z D.
Po kolei wygląda to tak:
Początek:
CCCCCCCCCCDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE (10C, 10D, 30E)
Po obkurczeniu D i E mamy:
CCCCCCCCCCDDDDDDDD**EEEEEEEEEEEEEEEEEEEEEE******** (10C, 8D, 2*, 22E, 8*)
Po przesunięciu w górę NAJPIERW E, POTEM D, mamy:
CCCCCCCCCC**********DDDDDDDDEEEEEEEEEEEEEEEEEEEEEE (10C, 10*, 8D, 22E)
Mamy miejsce na rozciągnięcie C, co pozwala nam ostatecznie uzyskać układ
taki:
CCCCCCCCCCCCCCCCCCCCDDDDDDDDEEEEEEEEEEEEEEEEEEEEEE (20C, 8D, 22E)
Cel osiągnięty!

W podobny sposób mozesz zmienić proporcje między D i E, jeśli tylko będzie
odpowiednia ilość miejsca do obkurczenia E, by przesunąć w górę i zrobić
miejsce dla D.
Pamietaj, aby zostawić trochę wolnego na obkurczanej partycji, inaczej latwo
o defekt, który powstając nie musi być duży (zauważyłeś, ze partycjoner po
każdej operacji przemieszczania danych sprawdza poprawność systemu plików?
Nawet, jeśli ich będzie 20, to tyle razy sprawdzi, co może potrwać kupę
czasu). Nie należy jednak polegać na sprawdzeniu przez partycjoner, choć one
są bardzo czułe na drobne nawet niuanse i na 99.9999% zatrzyma się, gdy coś
złapie, bo w tym 0.00001% jak nie złapie, to kto wie, czy błąd nie zostanie
powielony? Zasadniczo, nie powinno się tak stać, ryzyko jest znikome, ale
jak w znanym przysłowiu - strzeżonego... Można zaryzykować, gdy do C
potrzebujemy przydać tyle miejsca, ile jest wolnego razem na D i E,
procedura wygląda podobnie, jak podałem, z tym, ze wtedy bardzo wskazane
jest użycie partycjonera sprawdzonego, dobrej klasy, Partition Wizard raczej
da sobie radę (mnie nie nawalił), Partition Magic odradzam, Gparted też...
Oba miewają kłopoty przy maksymalnym obkurczaniu partycji, zwłaszcza PM, GP
też nie jest wtedy stuprocentowo pewny.

Podkreślam i powtarzać będę jak mantrę - operować tylko przy zdrowej
geometrii. Jeśli jakąś operację wykonamy przy chorej, choćby to była
konwersja extended-primary, to dalsze operacje stają się ryzykowniejsze,
Można to jakoś próbować poskładać programem TestDisk, upewniwszy się, że
BIOS ma prawidłowe nastawy (bez tego nie przywrócisz prawidłowej geometrii),
w programie jest opcja sprawdzenia tak poskładanego układu. Istnieje wersja
dla Windows, operująca w okienku niby-DOSa. Po poskładaniu geometrii do
kupy, dalsze operacje, jeśli tylko sprzęt jest sprawny (bardzo jest
zalecane, wrecz pożądane, aby na czas przemieszczania danych komputer był
podpięty pod UPSa, mogącego podtrzymać system przez cały czas trwania
operacji), w laptopie sprawna i naładowana bateria, jest w miarę bezpieczne.
BIOS rozwalony niewłaściwym flaszkowaniem, bo np. prądu w połowie zabrakło,
można przywrócić, nowsze BIOSy mają "nieruszimyj" fragment kodu, pozwalający
na ponowne podjęcie flaszkowania po przerwaniu procesu w trakcie, lub
załadowaniu niewłaściwego prorgamu, zwłaszcza w nowszych maszynach, ze
starszych trzeba wyjąć kość i przelecieć programatorem, a bywają uklady
wlutowane i sprawa sie komplikuje. Majtanie danymi jest daleko bardziej
skutkujuące, przy nieprawidłowym przerwaniu operacji, pozostaje wtedy liczyć
na to, że partycjoner w trakcie zapisuje na bieżąco dane naprawcze,
pozwalające podjąć nieprawidłowo przerwaną operację. Ponieważ, jak w
medycynie, lepiej zapobiegać, niż leczyć, nie zdawałbym się na ewentualne
wbudowane procedury ratunkowe - przemieszczanie danych nie jest tutaj
operacją atomową i przerwanie tego rodzi bardzo wysokie ryzyko
nieodwracalnego uszkodzenia danych, lub bardzo trudnego (za duże, 4-cyfrowe
sumy) do poskładania galimatiasu, jeśli wbudowane procedury ratunkowe, o ile
w ogóle takie są w partycjonerze, zderzą się z sytuacją nie przewidzianą do
obsługi. (NTFS ma tak, że operacja albo jest, albo jej nie ma - tak w
skrócie wygląda atomowość)

-- 
Pod żadnym pozorem nie zezwalam na wysyłanie mi jakichkolwiek reklam,
ogłoszeń, mailingów, itd., ani nawet zapytań o możliwość ich wysyłki.
Nie przyjmuję ŻADNYCH tłumaczeń, że mój adres e-mail jest ogólnodostępny
i nie został ukryty. Wszelkie próby takich wysyłek potraktuję jako stalking.
Received on Wed 12 Sep 2012 - 02:50:05 MET DST

To archiwum zostało wygenerowane przez hypermail 2.2.0 : Wed 12 Sep 2012 - 03:42:00 MET DST