本文共 2711 字,大约阅读时间需要 9 分钟。
硬盘划分为磁头(Heads)、柱面(Cylinder)、扇区(Sector)。磁头(Heads):每张磁片的正反两面各有一个磁头,一个磁头对应一张磁片的一个面。因此,用第几磁头就可以 表示数据在哪个磁面。柱面(Cylinder):所有磁片中半径相同的同心磁道构成“柱面",意思是这一系列的磁道垂直叠在一起,就形成一 个柱面的形状。简单地理解,柱面就是磁道。扇区(Sector):将磁道划分为若干个小的区段,就是扇区。虽然很小,但实际是一个扇子的形状,故称为扇区。 每个扇区的容量为512字节,是硬盘最小的存储单位。块(Block)是系统读取单位,一个块大小为4KB,由8个扇区组成
存储容量=磁头数×柱面数×扇区数×每扇区字节数
注:当磁盘有剩余空间,但inode用尽时,不能存储任何内容
(1)文件大小(2)文件所有者(3)文件所有组(4)文件权限(5)文件创建时间
stat 文件 //查看指定文件的inode信息;ls -i 文件也可简单查看文件对应inode号df -i //查看硬盘所有的inode号,已使用inode等信息ls -i 文件 //查看指定文件的inode号ls -id 目录 //查看指定目录的inode号dumpe2fs -h 分区 | grep -i "Inode size" //查看指定磁盘分区inode号占用大小
find / -type f -empty //搜索系统中所有为空的文件
(1)系统通过文件找到inode号(2)通过inode,寻找inode信息(3)根据inode信息,找到文件所对应的block位置,读取数据
注:一个文件的inode号一般不用更改,只有当删除文件时会释放
df -i //查看硬盘IFree的inode剩余情况rm -rf 文件 //删除硬盘下文件,会自动释放inode号
(1)新增1G硬盘分区并挂载
fdisk /dev/sdb --> n --> p --> 1 --> 回车 --> 回车 --> wmkfs -t ext4 /dev/sdb1mkdir /datamount /dev/sdb1 /data/
(2)模拟故障
df -i /dev/sdb1touch /data/{1..65269}
(3)测试
touch /data/ab //报错,磁盘空间不足rm -rf /data/1touch /data/ab //可正常创建touch /data/ac //报错
ln 源文件 目标文件
特点:
a.对其中一个内容修改,其余全部同步b.当删除其中一个文件时,不影响其余文件c.链接的大小为源文件大小d.只支持链接文件
ln -s 源文件 目标文件
特点:
a.对其中一个内容修改,其余全部同步b.当删除源文件/目录时,目标文件/目录不能使用c.目标/文件不占用空间d.可链接文件/目录
针对ext4文件系统(debugfs、ext3grep、extundelete);testdisk可恢复分区表
yum -y install e2fsprogs-*
tar -jxvf extundelete-0.2.4.tar.bz2cd ~/extundelete-0.2.4/./configure --prefix=/usr/local/ex && make && make installcd /usr/local/ex/bin
touch /data/11111mkdir /data/aa/rm -rf /data/11111 //删除文件,测试./extundelete /dev/sdb1 --restore-all //恢复磁盘被删除内容ls RECOVERED_FILES/ //查看恢复目录下是否有恢复完成的文件./extundelete /dev/sdb1 --restore-file=11111 //只恢复名为11111的文件./extundelete /dev/sdb1 --restore-inode=12 //只恢复inode为12的文件./extundelete /dev/sdb1 --restore-directory=aa //只恢复aa目录及其下所有文件内容./extundelete /dev/sdb1 --inode=2 //查看/dev/sdb1所有被误删除的文件名及inode号
tar -jxvf testdisk-7.1-WIP.linux26-x86_64.tar.bz2 //解压testdisk软件包mv testdisk-7.1-WIP /data/ //移动到别的硬盘中dd if=/dev/zero of=/dev/sda bs=512 count=1 //模拟磁盘MBR引导损坏reboot //重启,无法进入系统
放入光盘,进入恢复模式
mkdir /a && mount /dev/sdb1 /a //新建目录/a,并挂载磁盘/dev/sdb1到/a/a/testdisk-7.1-WIP/testdisk_static /dev/sda --> Proceed(选择需恢复的磁盘)-->intel(选择磁盘分区类型)-->Analyse(分析磁盘分区情况)-->Write(回车,将搜索到的分区表写入到磁盘中)-->y-->quitchroot /mnt/sysimage //进入原系统环境grub-install /dev/sda //重新安装grub引导程序reboot
转载于:https://blog.51cto.com/13770206/2134221