Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
tak jsem našel vhodnou utilitku, jmenuje se PUTSECT. Jenomže teď tu laboruju se syntaxí a nedaří se.…
Moas 23.11.2007 14:06
Moas
Ten tool robil nejaky madar tak sa necuduj :-D Skus to bez tych 2 poslednych parametrov, ak to nepoj…
MM.. 23.11.2007 14:19
MM..
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 vyn…
Moas 23.11.2007 15:02
Moas
Skus si to, mas to tam aj so zdrojakom. Chsrw.zip Usage: chsrw r <drive> <cylinder> <head> <sector>…
MM.. 23.11.2007 17:22
MM..
Smekám... Sosnul jsem to, ale na PC, kde teď jsem, to nevyzkouším:-), hned začátkem příštího týdne t…
Moas unregistered 23.11.2007 18:51
Moas unregistered
Ano, ak chces citat/zapisovat uplny zaciatok disku tak to zacina na C:0 H:0 S:1 - to si myslim ze bu… poslední
MM.. 23.11.2007 19:11
MM..

tak jsem našel vhodnou utilitku, jmenuje se PUTSECT. Jenomže teď tu laboruju se syntaxí a nedaří se.
Samotný PUTSECT vypisuje toto:

Usage:
Putsect <disknumber> <cylinder> <head> <sector> <filename> <cylinders> <hash> [checkfile <checkfilename>]

Writes the content of the file <filename> to the sector.

The file must be 512 bytes long. <cylinders> is the number of
cylinders on the disk. <hash> is a hash value from the current
content of the sector.

If the ascii value of byte no. n is called a(n), the hash value used
is 1 * a(1)+ 2 * a(2) + ... + 512 * a(512). The result is written
as an 8 digit hexadecimal number. The hash value of a 512 bytes file
can be printed with the command: Putsect gethash <filename>

If checkfile is used, hash can be entered as 00000000
and the current sector content must match <checkfilename>.

Returns 0 if the sector is written.

Č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

PUTSECT 1 0 0 32 DATA.TXT 0 00603000

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.

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!:beer:

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 :-)
BTW. za premie si kup :beer:, das si jedno aj za mna :))

Smekám...
Sosnul jsem to, ale na PC, kde teď jsem, to nevyzkouším:-), hned začátkem příštího týdne to zkusí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.

Zpět do poradny Odpovědět na původní otázku Nahoru