科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航



ZDNet>网络频道>ZD评测>Linux下恢复硬盘分区数据

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

今天下午在linux下删除操作,想安装oracle数据库,整理硬盘的时候用fdisk重新划分分区.

来源: 2007年10月14日

关键字:分区 恢复 数据 硬盘 Linux

  今天下午在linux下删除操作,想安装oracle数据库,整理硬盘的时候用fdisk重新划分分区,我的硬盘分区表是这样的:

  QUOTE:# fdisk -l /dev/hda

  Disk /dev/hda: 82.3 GB, 82348277760 bytes 255 heads, 63 sectors/track, 10011 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot StartEnd BlocksId System /dev/hda1 * 1 10448385898+7 HPFS/NTFS C:/dev/hda2 1045 1057104422+83 Linux /boot /dev/hda3 1058 1249  154224082 Linux swap /dev/hda4 1250 10011 70380765f W95 Ext'd (LBA)

  /dev/hda8 1250 20326289384+83 Linux /usr /dev/hda9 2033 2293209645183 Linux /tmp /dev/hda10 2294 2554209645183 Linux /var /dev/hda11 2555 27461542208+83 Linux / /dev/hda12 2747 30462409718+83 Linux /home /dev/hda5 3047 31891025860+83 Linux not used /dev/hda6 3190 33802048108+83 Linux not used /dev/hda7 3381 36702048108+83 Linux not used /dev/hda13 36716287 21021021b W95 FAT32 D:/dev/hda14 62881001129912998+b W95 FAT32 E:

  

  我想把第5、6、7分区删除然后重新建立两个分区,分别安装oracle数据库程序文件和数据库文件,我用fdisk是这样操作的:

  QUOTE:# fdisk /dev/hda

  The number of cylinders for this disk is set to 10011. There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)

  2) booting and partitioning software from other OSs(e.g., DOS FDISK, OS/2 FDISK)

  Command (m for help): d Partition number (1-13): 5

  Command (m for help): d Partition number (1-12): 6

  Command (m for help): d Partition number (1-11): 7

  Command (m for help): w

  

  退出fdisk后才发现删错了,竟然把第5、7、9分区删除了!其中hda9共28G,里面存了好多有价值的东西,难受死我了!这才想起来fdisk在每一次删除分区后都会自动把后面的分区重新排序,即:删除第5分区时,第6分区变成5,第7分区成为6……

  郁闷!……

  天无绝人之路:我想到今天早上刚刚把hda的分区表备份了,并且放到了其它分区!也没有细想,把那个备份拿过来就开始恢复硬盘分区(别笑话我啊):

  QUOTE:#dd if=hda-2006-03-21.mbr of=/dev/hda bs=512 count=1 #reboot

  

  重启电脑用fdisk再看分区表——没有效果!

  怎么回事?从分区表开始想——太简单了——分区表只有512字节,其中只有64字节存储分区信息,开始的时候硬盘容量很小,64字节够用了,后来随着硬盘空间增大显得不够了,因此开始有了扩展分区,而我删除的分区正好都在扩展分区内!恢复mbr肯定是不行的了!

  怎么办啊!!!从硬件管理器盯着我的hda看了半天!发现我删除的分区都是几个独立的空间,就想能不能重新建立我的逻辑分区表来恢复分区内容呢???一不做二不休,反正没有别的办法了,试试吧!

  QUOTE:# fdisk /dev/hda

  The number of cylinders for this disk is set to 10011. There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)

  2) booting and partitioning software from other OSs(e.g., DOS FDISK, OS/2 FDISK)

  Command (m for help): n First cylinder (3047-10011, default 3047):Using default value 3047 Last cylinder or +size or +sizeM or +sizeK (3047-3189, default 3047):Using default value 3047

  Command (m for help): n First cylinder (3381-10011, default 3670):Using default value 3670 Last cylinder or +size or +sizeM or +sizeK (3381-3670, default 3670):Using default value 3670

  Command (m for help): n First cylinder (6288-10011, default 628:Using default value 6288 Last cylinder or +size or +sizeM or +sizeK (6288-10011, default 10011):Using default value 10011

  Command (m for help): t Partition number (1-14): 14 Hex code (type L to list codes): b

  Command (m for help): w

  

  接下来该干什么呢?按照常规应该是mkfs.vfat啦!可是为什么呢?如果只是建立分区表来恢复数据,那么这么做不就是重新建立文件分配表了吗?!绝对不行!

  还是先看看吧。

  QUOTE:#mount -t vfat -o iocharset=utf8 /dev/hda14 /mnt/tmp/ #cd /mnt/tmp/ #ls

  

  哈哈!!!大功告成!终于又看到那些文件了!

  重新启动电脑进入windows也看到了分区E:,里面的东西也是完好无损的在那儿呆着呢!

  由此我更加信任linux系统了,工具虽小但是很实用!也很强大。同时这件事情提醒我在以后的使用中注意要细心,注意一些细节问题!

(3)rootkit工具:LRK
Rootkit出现于二十世纪90年代初,它是攻击者用来隐藏自己的踪迹和保留root访问权限的工具。通常,攻击者通过远程攻击或者密码猜测获得系统的访问权限。接着,攻击者会在侵入的主机中安装rootkit,然后他会通过rootkit的后门检查系统,看是否有其他的用户登录,如果只有自己,攻击者就开始着手清理日志中的有关信息。通过rootkit的嗅探器获得其它系统的用户和密码之后,攻击者就会利用这些信息侵入其它的系统。
如果攻击者能够正确地安装rootkit并合理地清理了日志文件,系统管理员就会很难察觉系统已经被侵入,直到某一天其它系统的管理员和他联系或者嗅探器的日志把磁盘全部填满,他才会察觉已经大祸临头了。不过,在系统恢复和清理过程中,大多数常用的命令例如ps、df和ls已经不可信了。许多rootkit中有一个叫做FIX的程序,在安装rootkit之前,攻击者可以首先使用这个程序做一个系统二进制代码的快照,然后再安装替代程序。FIX能够根据原来的程序伪造替代程序的三个时间戳(atime、ctime、mtime)、date、permission、所属用户和所属用户组。如果攻击者能够准确地使用这些优秀的应用程序,并且在安装rootkit时行为谨慎,就会让系统管理员很难发现。
下面我们介绍一个非常典型的针对Linux系统的LRK版本6。Linux Rootkit 6是一个开放源码的rootkit,经过多年的发展,Linux Rootkit的功能越来越完善,具有的特征也越来越多。下面我们简单地介绍一下Linux Rootkit包含的各种工具。
首先是隐藏入侵者行踪的程序。为了隐藏入侵者的行踪,Linux Rootkit IV的作者可谓煞费心机,编写了许多系统命令的替代程序,使用这些程序代替原由的系统命令,来隐藏入侵者的行踪。这些程序包括:
ls、find、du 这些程序会阻止显示入侵者的文件以及计算入侵者文件占用的空间。在编译之前,入侵者可以通过ROOTKIT_FILES_FILE设置自己的文件所处的位置,默认是/dev/ptyr。注意如果在编译时使用了SHOWFLAG选项,就可以使用ls -/命令列出所有的文件。这几个程序还能够自动隐藏所有名字为:ptyr、hack.dir和W4r3z的文件。
ps、top、pidof 这几个程序用来隐藏所有和入侵者相关的进程。
netstat 隐藏出/入指定IP地址或者端口的网络数据流量程。
killall 不会杀死被入侵者隐藏的进程。
ifconfig 如果入侵者启动了嗅探器,这个程序就阻止PROMISC标记的显示,使系统管理员难以发现网络接口已经处于混杂模式下。
crontab 隐藏有关攻击者的crontab条目。
tcpd 阻止向日志中记录某些连接。
syslogd 过滤掉日志中的某些连接信息。
其次是后门程序。木马程序可以为本地用户提供后门;木马网络监控程序则可以为远程用户提供inetd、rsh、ssh等后门服务,具体因版本而异。随着版本的升级,Linux Rootkit IV的功能也越来越强大,特征也越来越丰富。一般包括如下网络服务程序:
chfn 提升本地普通用户权限的程序。运行chfn,在它提示输入新的用户名时,如果用户输入rookit密码,他的权限就被提升为root。
chsh 提升本地用户权限的程序。运行chsh,在它提示输入新的shell时,如果用户输入rootkit密码,他的权限就被提升为root。
passwd 和上面两个程序的作用相同。在提示你输入新密码时,如果输入rookit密码,权限就可以变成root。
login 允许使用任何帐户通过rootkit密码登录。如果使用root帐户登录被拒绝,可以尝试一下rewt。当使用后门时,这个程序还能够禁止记录命令的历史记录。
inetd 特洛伊inetd程序,为攻击者提供远程访问服务。
rshd 为攻击者提供远程shell服务。攻击者使用rsh -l rootkitpassword host command命令就可以启动一个远程root shell。
sshd 为攻击者提供ssh服务的后门程序。
再就是工具程序。所有不属于以上类型的程序都可以归如这个类型,它们实现一些诸如:日志清理、报文嗅探以及远程shell的端口绑定等功能,包括:
fix 文件属性伪造程序。
linsniffer 报文嗅探器程序。
sniffchk 一个简单的bash shell脚本,检查系统中是否正有一个嗅探器在运行。
login 允许使用任何帐户通过rootkit密码登录。如果使用root帐户登录被拒绝,可以尝试一下rewt。当使用后门时,这个程序还能够禁止记录命令的历史记录。
z2 utmp/wtmp/lastlog日志清理工具。可以删除utmp/wtmp/lastlog日志文件中有关某个用户名的所有条目。不过,如果用于Linux系统需要手工修改其源代码,设置日志文件的位置。
bindshell 在某个端口上绑定shell服务,默认端口是12497。为远程攻击者提供shell服务。
(4)netcat
这是一个简单而有用的工具,能够通过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接,还有几个很有意思的内置功能。
推广二维码
邮件订阅

如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

重磅专题