中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-17 07:16
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,269 会员排行
DOS开发编程 & 发展交流 (开发室) » 一个磁盘分区链表管理工具
可打印版本  7,921 / 30
第16楼 cchessbd 发表于 2006-10-28 08:17
高级用户 发帖 222 积分 525
Originally posted by 19951001 at 2006-10-27 22:56:
"如果你在备份磁盘链表后,改变过磁盘分区信息,请不要恢复,否则会引起数据丢失“ 这句话是说,如果你使用此程序保存了分区链表后,你又頮..


假如这个程序真的正常工作的话,将会是一个非常好的工具。
我有两个要求:
1.希望可以将显示的信息可以标准化。
这样 dpit 0 /s db0.bin /dbr>nul 可以不出现提示信息,不影响
WBAT界面的美观。
我这样说并没有抹杀作者的辛勤劳动的意思,只是觉得显示与否,应该由使用者来决定,而不是强制在屏幕上显示。。。使用的人是很尊重作者的。

2. 将diskrw的功能加到dpit中来,这样两个程序的功能合在一起会小点。
如果程序能更小点最好,越小越好。
因为当GRUB之类的启动程序被装在MBR的时候,需要diskrw的功能对前面的几十个扇区进行完整备份。重复安装GRUB可能会导致分区信息出错。当然,这个我只是略知一二,高手不妨指教。
第17楼 leevi 发表于 2006-10-28 13:03
初级用户 发帖 20 积分 37
谢谢了楼住的分享
第18楼 19951001 发表于 2006-10-30 23:23
高级用户 发帖 272 积分 570 来自 北京
to weilong888:

Originally posted by weilong888 at 2006-10-28 07:29:
我的文件pt0.bin是3613B。按楼主的算法也应该是3613B。应该是显示DONE啊。


你运行程序时
dpit 0 /s pt0.bin
没有显示 “Done!” ?

你说的情况我还真没有遇到过,我这里机房的 N 台机器都能够保存成功,保存后
运行比较命令也是成功的。

[ Last edited by 19951001 on 2006-10-31 at 01:40 AM ]
第19楼 19951001 发表于 2006-10-30 23:28
高级用户 发帖 272 积分 570 来自 北京
to cchessbd:

Originally posted by cchessbd at 2006-10-28 08:17:


假如这个程序真的正常工作的话,将会是一个非常好的工具。
我有两个要求:
1.希望可以将显示的信息可以标准化。
这样 dpit 0 /s db0.bin /dbr>nu ...


我会考虑你的建议,不过可能要等一段时间。

软件已经更新,见一楼,压缩包包含两个版本 for dos & for win

[ Last edited by 19951001 on 2006-10-31 at 02:06 AM ]
第20楼 weilong888 发表于 2006-10-31 08:41
银牌会员 发帖 548 积分 1,270
Originally posted by 19951001 at 2006-10-30 11:23 PM:
to weilong888:



你运行程序时
dpit 0 /s pt0.bin
没有显示 “Done!” ?

你说的情况我还真没有遇到过,我这里机房的 N 台机器都能够保存成功,保存后
...

dpit 0 /s pt0.bin 运行后是显示done,可运行dpit 0 /c pt0.bin 就显示 file size error.在虚拟机里两个参数运行后都是好的,是不是因为主分区是三个的原因?
第21楼 cchessbd 发表于 2006-10-31 11:11
高级用户 发帖 222 积分 525
Originally posted by 19951001 at 2006-10-28 04:46:
你有几块硬盘? 如果是一块硬盘有九个分区,你使用命令:
dpit 0 /l
显示一下
我在程序中可以识别的分区如下,你有不在如下类型的分区,程序将忽略,不过并不影响功能只是不对其他类型的分区表所在的扇区读写,因为我接触的目前是这几种,如果你有其他类型的分区,请把你保存的分区链表文件Email给我,我加入分区标志就可以识别了。
"DOS FAT12",
"Extended",
"DOS FAT16",
"HPFS/NTFS",
"Win95 FAT32",
"Win95 FAT16",
"Linux Swap",
"Linux Native",
"Linux Extended",
"Win95 Extended LBA"


我想以上分区类型如果隐藏的话是否也能备份?
分区标志 "HPFS/NTFS"---07 ,隐藏后--->17 (应该没记错吧)
第22楼 cchessbd 发表于 2006-10-31 12:06
高级用户 发帖 222 积分 525
关于dpit 0 /s dbr0.bin /dbr
对ntfs是否只保存一个扇区;我用winhex察看逻辑盘前面扇区的结果:
1。能启动的ntfs分区:除第一扇区外,第二到第六扇区都有数据
2。一般的ntfs分区: 只有第一扇区有数据
对1,希望能作以下测试: 清除后面的2-6扇区,该分区是否还能正常启动;
sorry,因为我没电脑,在网吧有冰点,没法帮您测试。还有linux分区,希望也一并测试。

至于为什么这么期待dpit,而不使用srctools系列,是我觉得diskrw这个程序的开放性特别好。当然dpit目前的dbr,pt备份恢复功能还是很不错的,应继续完善。

[ Last edited by cchessbd on 2006-10-31 at 12:10 PM ]
第23楼 cchessbd 发表于 2006-10-31 12:15
高级用户 发帖 222 积分 525
我用楼主的工具+GHOST+WBAT+……做了个启动盘。
http://free5.ys168.com/?nhccrgd
其中用到了mbr、dbr、pt备份恢复功能。
期待合二为一的工具,并且不要用工具压缩。
至于是否压缩,可以用upx自己来决定。
二次压缩还是有几k的损失的。
第24楼 19951001 发表于 2006-11-01 01:01
高级用户 发帖 272 积分 570 来自 北京
to weilong888

Originally posted by weilong888 at 2006-10-31 08:41:

dpit 0 /s pt0.bin 运行后是显示done,可运行dpit 0 /c pt0.bin 就显示 file size error.在虚拟机里两个参数运行后都是好的,是不是因为主分区是三个的原因?


你说的情况我的确没有遇到过,因为在程序中使用 /C 参数时首先打开文件取得最后一个字节的内容,保存到一个整数中,然后用这个数乘516再加1如果等于文件长度,则文件大小正确。
第25楼 19951001 发表于 2006-11-01 01:07
高级用户 发帖 272 积分 570 来自 北京
to cchessbd:



Originally posted by cchessbd at 2006-10-31 12:06:
关于dpit 0 /s dbr0.bin /dbr
对ntfs是否只保存一个扇区;我用winhex察看逻辑盘前面扇区的结果:
1。能启动的ntfs分区:除第一扇区外,第二到第六扇区都朠...


使用参数 /dbr 时,只保存各个分区的 boot record 一个扇区的内容,你提到的
其它情况我会认真考虑,逐渐完善。
第26楼 chenall 发表于 2006-11-01 10:32
银牌会员 发帖 469 积分 1,276 来自 福建泉州
16F
可能遇到了和我一样的问题
BOOTLACE 加参数 --force-backup-mbr写入MBR后,
如果再次使用这个命令写入就会出现问题(一直显示按热键启动GRUB,其它键启动备份的MBR)
由于加这个参数时会将原来MBR的内容保存到第二扇区(也就是备份的MBR)
所以就会出现如上问题.

我的解决方法有2.
1.先对MBR的内容进行判断,确认是使用--force-backup-mbr还是使用--no-backup-mbr
2.进行BOOTLACE前先强制修复MBR再操作.
第27楼 19951001 发表于 2006-11-02 00:45
高级用户 发帖 272 积分 570 来自 北京
2006.11.1更新(见一楼)
1 加入了对隐含分区的支持
2 可以同时保存分区链表和DBR信息
dpit 0 /s disk0pt.bin /dbr disk0dbr.bin
将分区链表保存到disk0pt.bin,将DBR信息保存到disk0dbr.bin。
3 查找算法优化
第28楼 cchessbd 发表于 2006-11-07 10:44
高级用户 发帖 222 积分 525
改了你的LP.CMD 好处是不用生成临时文件

@echo off
:: List all hard disk partitions
if not exist dpitw.exe goto end

for /l %%i in (0,1,9) do (
cls
dpitw %%i /l >nul 2>nul
if errorlevel 100 dpitw %%i /l&pause>nul else goto end
)

:end
第29楼 19951001 发表于 2006-11-16 22:39
高级用户 发帖 272 积分 570 来自 北京
2006.11.16
程序中发现了一个BUG,网友weilong888提出的,现已修正。
请重新下载。
第30楼 anqing 发表于 2007-01-30 22:54
高级用户 发帖 413 积分 859
好东西,支持楼主
上一页  1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023