免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2189 | 回复: 9
打印 上一主题 下一主题

[瓶颈]设想中的自动备份与自动恢复方案 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-16 20:01 |只看该作者 |倒序浏览
我在老妈的计算机上装过、用过基于Ghost和PQMagic的一键恢复精灵。方便是方便,但也有不少缺陷:
·只能备份第一个分区,无法备份位于其他分区的系统。
·只能保留一个备份,无法选择性恢复。
·备份的内容存放在FAT分区,被病毒感染的可能性很大。
·备份时会用PQMagic动态修改最后两个分区的大小,此时一旦断电……

我设想了一个基于Linux、tar、gzip/bzip的方案,其中一部分已经实现,用半自动脚本备份和恢复我的Linux。Linux引导头部分的恢复目前手动完成,但如果不考虑灵活性,其实也能做在脚本里。

Window$的自动备份与恢复还没有实现。

Windows启动时,相关启动文件的绝对位置和Window$引导头中的记录相符,否则Windows无法启动。dd命令能备份和恢复Window$的引导头,但tar和gzip/bzip不能保证恢复出来的文件的其实位置与备份前的文件一致,Window$引导头无法找到启动文件,恢复后的系统将无法启动,恢复失败。

在此情况下,恢复Window$需要用Window$安装光盘重新恢复Window$引导,再用Linux光盘恢复Linux引导,而且步骤相当烦琐。老妈连使用一键恢复精灵都需要有人现场/摇控指导,如此烦琐的操作对她来说极不现实。

曾经也想过用dd备份和恢复整个Window$分区:
dd if=/dev/hdaX | gzip -9 > hdaX.gz
gzip -dc hdaX.gz | dd of=/dev/hdaX
但立刻发现,完全用dd方式,备份结果实在庞大,即使用gzip/bzip的9级压缩,也不比原来的文件系统小多少。

现在设想了一个新的方案:
·用dd备份和恢复Window$的引导头;
·备份时记录下Window$中那些顽固文件的起始扇区号,恢复时在指定扇区处恢复这些文件;
·其他文件则直接用tar和gzip/bzip备份。

目前我还有两个问题无法解决,成为方案的瓶颈:
·如何获得一个文件在磁盘上的绝对位置(比如扇区号,或者相对其所在文件系统的第一扇区的的偏移量)?
·如何在指定的磁盘绝对位置上创建文件?


以上两个问题,希望有人能给出答案,C的或者Shell的办法都可以。我现在的时间与精力都不允许我自行解决这两个问题。不过一旦有人提供答案,我可以很快做出这个方案,大家都可能从中受益。

[ 本帖最后由 自由狼-台风0 于 2007-6-18 15:31 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-06-18 15:10 |只看该作者
既然dd命令能在指定的扇区创建文件,那么在编写查找文件起始扇区的程序时,我希望参考dd的代码。我应该到binutils、fileutils还是coreutils里去找dd的代码?

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
3 [报告]
发表于 2007-06-18 16:48 |只看该作者
dd命令能在指定的扇区创建文件?

论坛徽章:
0
4 [报告]
发表于 2007-06-18 16:57 |只看该作者
原帖由 waker 于 2007-6-18 16:48 发表
dd命令能在指定的扇区创建文件?


dd不需要绝对扇区位置。dd可以在文件系统起始扇区+一定偏移的地方建立/复制文件。

现在能通过stat命令获得文件的I-结点号,但它和扇区(或文件系统地址偏移量)之间有什么对应关系我还没弄清楚。

论坛徽章:
0
5 [报告]
发表于 2007-06-18 19:39 |只看该作者
原帖由 waker 于 2007-6-18 16:48 发表
dd命令能在指定的扇区创建文件?

我也怀疑,dd只是个USER程序,充其量就是写块设备,文件的块建立在那个逻辑块是文件系统决定的,

当然理论上dd可以做到,文件系统最后也是用块设备而已,但是这个感觉比较复杂,谁确认可以写文件告诉一下。
还有一个原因,在确定的扇区写文件没有意义。

论坛徽章:
0
6 [报告]
发表于 2007-06-18 19:45 |只看该作者
楼主说的复制文件不是我们说的意思,就是把一块数据写到某个地方

论坛徽章:
0
7 [报告]
发表于 2007-06-18 19:46 |只看该作者
楼主显然没有man dd过,
更加没有仔细看过dd的代码。

论坛徽章:
0
8 [报告]
发表于 2007-06-18 22:48 |只看该作者
的确还没来得及看。不过已经收下了。

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
9 [报告]
发表于 2007-06-19 13:38 |只看该作者
原帖由 doctorjxd 于 2007-6-18 19:46 发表
楼主显然没有man dd过,
更加没有仔细看过dd的代码。


用过很多次dd, 但从没想到过看它的代码,看样子差距就在这里了。

论坛徽章:
0
10 [报告]
发表于 2007-06-22 12:05 |只看该作者
感觉楼主的实现不是很好。
虽然我没有更好的想法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP