Hlášení chyb a problémů programu Altap Salamander. Buďte, prosím, ve svých popisech co nejpodrobnější a vytvořte pro každý incident nový příspěvek. Nevkládejte programem generovaná hlášení o pádu programu, pošlete je e-mailem.
Dobrý den,
nejdřív mne toto chování udivilo, ale nakonec se ukázalo jako vždy opakovatelné: Salamander při kopírování rozdělí soubor na dva fragmenty - první fragment velký jeden cluster a druhý fragment obsahuje celý zbytek.
Explorer i Total Commander kopírují na mém systému soubory v jednom celku. Soubor se do volných bloků vejde celý.
Mapa disku před kopií:
XXXXXXXX________
__XXX_______XXXX
Mapa disku po kopírování Salamanderem z jiného disku:
XXXXXXXX2222____
__XXXX1_____XXXX
Mapa disku po kopírování Explorerem z jiného disku:
XXXXXXXX________
__XXXX11111_XXXX
Legenda:
X - původní data
_ - volné místo
1 - první fragment
2 - druhý fragment Systém: Windows XPSP3 EN Pro; Salamander 2.51; NTFS s 4KB clustery
Koukal jsem na to a podle kodu se dela nastaveni souboru na plnou velikost, pak seek na zacatek souboru a zapis jednoho bytu, nastaveni konce souboru a test velikosti souboru. Za jistych podminek se totiz deje to, ze misto zapisu na zacatek souboru se zapisuje na konec, tedy vysledek teto operace je soubor o velikosti o jeden byte vetsi nez je zdrojovy soubor (v teto situaci nelze pouzit nastavovani velikosti souboru predem). Tento test se dela jen pro prvni soubor copy/move operace. Casem udelam testy a proverim proc to dela to, co popisujete a pokusim se to opravit. Teoreticky by to delat nemelo, protoze by se soubor mel alokovat v plne velikosti, a pak teprve zkratit.
SetEndOfFileInformationFile(soubor.ext, 1) -- zpět na jeden Byte??
Je možné, že to je vedlejší účinek nějaké knihovní funkce nebo toho zjištění velikosti... (Ale to zjištění velikosti je asi až to následné QueryStandardInformationFile(soubor.ext))
Petr Solin wrote:Mam tenhle problem hodne vysoko na todo, opravim to fragmentovani ... (i kdyz ho tu bohuzel nejsem schopen reprodukovat).
Původně jsem podezíral O&O Defrag, ale teď jsem reprodukoval problém na mých virtuálních Windows 2000 s Altap Salamanderem 2.52 beta 1, kde není O&O Defrag nainstalovaný:
1) Pustím Salamander
2) Stáhnu Contig.zip ze Sysinternals
3) Vstoupím Salamanderem do contig.zip archivu a dám Ctrl+C na contig.exe
4) Ve složce s archivem vytvořím testovací adresář, kam contig.exe vybalím pomocí Ctrl+V
5) Spustím contig.exe -a contig.exe (přpínač -a jen zobrazuje informace)
x) Výsledek: Average fragmentation: 2 frags/files
Vzhledem k tomu, že se jedná o 200kb velký soubor, je mizivá pradvěpodobnost, že by se nikam v celku nevešel.
Musel jsem davat do kupy par uzivateli zasr... PC. Krome jineho extremne fragmentovane disky. Nektere soubory ani nesly defragmentovat (nap. gigove outlook.pst aj.), tak jsem je presunul na jiny disk, pak puvodni disk defragmentoval a tyto velke soubory nakopiroval zpatky. Jake bylo moje prekvapeni, kdyz defrag ukazal, ze jsou znovu fragmentovane (kontinualniho mista na disku bylo dost). Tak delete a znovu nakopirovat zpet, tentokrat Win Explorerem. Vysledek = zadna fragmentace.
Uz s tim neco udelejte, neni mozne, aby souborovy manazer fragmentoval soubory, kdyz nemusi!
xm wrote:Jake bylo moje prekvapeni, kdyz defrag ukazal, ze jsou znovu fragmentovane (kontinualniho mista na disku bylo dost).
O jaký šlo operační systém?
Salamander byl v jaké verzi?
Na kolik fragmentů byly soubory rozsekány (řádově)?
Čím sledujete fragmentaci souborů?
Šlo předpokládám o NTFS?
Jan Rysavy wrote:
O jaký šlo operační systém?
Salamander byl v jaké verzi?
Na kolik fragmentů byly soubory rozsekány (řádově)?
Čím sledujete fragmentaci souborů?
Šlo předpokládám o NTFS?
- Win XP Pro SP3 CZ x86
- Sal 2.51
- ~2GB soubor na 12 fragmentu
- MS XP standardni defrag, disk byl pred kopirovanim vicekrat defragmentovany (v defrag-logu nakonec zadna fragmentace krome MFT a nejakych pidi-souboru), po nakopirovani 2GB souboru z jineho disku a pouziti "Analyzovat" v MS defragu byl tento soubor fragmentovany (log), na disku bylo v tu dobu kolem 15GB volneho (nerozkouskovaneho) mista
- NTFS
Opraveno. Kopirovani uz by melo produkovat soubory s jedinym fragmentem, bude to v 2.52 beta 2. Fragmentovalo to pouze prvni soubor z kopirovane davky (pri oznaceni celeho disku by mel vzniknout jen jediny dvoufragmentovy soubor, zbytek by mel byt OK i ve stare verzi).