
Jak smazat určitý sektor z disku pod DOSem?
Ahoj,
nabootuju do DOSu a potřebuju pomocí nějaké utilitky smazat přes příkazovou řádku určitý sektor na disku. Neznáte nějakou takovou utilitku? Mám to do BAT souboru, takže bez GUI (zatím jsem našel akorát GUI-only). Freeware nejlépe.
Díky
tak jsem našel vhodnou utilitku, jmenuje se PUTSECT. Jenomže teď tu laboruju se syntaxí a nedaří se.
Samotný PUTSECT vypisuje toto:
Čili jsem si vytvořil soubor DATA.TXT, který je plný samých nul a má velikost 512B.
Chci smazat sektor 32.
A teď se trápím.
Zkusil jsem
Vrací mi to hlášku "Cylinders not correct." No bodejť, nula tam být určitě nemá. Jenomže co tam má být? A navíc aby to fungovalo univerzálně, na libovolném disku...
Já si doteď myslel, že když chci přemazat 32. sektor, tak mi stačí vědět, kterého fyzického disku se to týká a o zbylou geometrii se starat nemusím.
Díky za komentáře.
Ten tool robil nejaky madar tak sa necuduj
Skus to bez tych 2 poslednych parametrov, ak to nepojde tak daj vediet, urobim ti ten exe.
Wow, to bych Ti byl zavázán... a kdyby z toho kápnuly nějaké prémie, podělíme se napůl :)
Pokud vynechám jakýkoliv parametr, nic se neprovede, jen se zobrazí znovu to, co jsem vkládal nahoře.
Čili můj požadavek je takový, aby ta utilitka smazala sektor specifikovaný uživatelem (stačí v rozsahu 0 - 100) na pevném disku. Předpokládejme použití pouze jednoho pevného disku, ale můžou to být různé typy, ATA i SATA. Externí pevné disky nehrozí.
Pokud by ses s tím chtěl nějak drbat, tak možnost provést tuto operaci i na PC, kde je víc než jeden disk (a určit, o který disk jde) je vítaná, ale není nutná.
Děkuji mockrát!
ono je trochu otazka ze z coho chces bootovat. Ak totiz nabootujes DOS z USB sticku, tak HDD cislo 0 je zvycajne ten USB stick. Je to logicke cislovanie ktore urci BIOS, spravidla podla poradia bootovania. Fyzicke cislovanie diskov neexistuje (nemozes povedat ze disk0 ma byt ten na ATA). disk0 pre BIOS/DOS je ten, z ktoreho sa bootuje.
Skus si to, mas to tam aj so zdrojakom.
Chsrw.zip
Usage:
chsrw r <drive> <cylinder> <head> <sector> <filename> - reads one sector
chsrw w <drive> <cylinder> <head> <sector> <filename> - writes one sector
<drive> = 0..15
<cylinder> = 0..1023
<head> = 0..255
<sector> = 1..63
drive je cislo harddisku (HDD/stick z ktoreho si nabootoval by mal byt cislo 0).
Pozor na to ze drive, cyl, head su cislovane od 0, ale sector je cislovany od 1 (tak sa to cisluje odjakziva)
P.S. nechcelo sa mi to robit cez LBA, ale pre tvoje pouzitie staci C,H,S sposob (t.j. pre maximalne prvych 8GB na disku)
este nieco: ak by si to chcel pouzit v .bat: vracia to ERRORLEVEL=0 ak bolo vsetko OK, ak error tak ERRORLEVEL=1
P.S.2. trochu som upravil vytvaranie suboru ak je error, tak si to stiahni znova, novsiu verziu
, das si jedno aj za mna 
BTW. za premie si kup
Smekám...
, hned začátkem příštího týdne to zkusím.
Sosnul jsem to, ale na PC, kde teď jsem, to nevyzkouším
Jinak bootovat se bude z CD nebo ze sítě.
V geometrii disku se příliš nevyznám... pro rozsah sektorů 1..63 je cylinder a head vždy 0?
Ano, ak chces citat/zapisovat uplny zaciatok disku tak to zacina na C:0 H:0 S:1 - to si myslim ze bude platit na absolutne vsetkych PC, aj novych, aj z roku 1980 :) (inac by nefungovalo bootovanie).
Malicky problem je, ze sektor nemusi ist az po 63, su disky ktore maju aj menej sektorov na stopu, dnes ale spravidla vsetky HDD maju sektor az po 63, kedze to aj tak disky vnutorne preratavaju na LBA, takze by nemal byt problem.
Ak sa bude bootovat z CD alebo zo siete tak to je tusim vzdy emulacia diskety, takze cislo HDD by sa zmenit nemalo (a prvy HDD (prvy HDD v poradi bootovania)) by mal byt disk cislo 0. Ale u bootovani zo siete si to over, nie som si 100% isty.