2.MBR
3.硬碟分区创建
4.破坏MBR实例
1.Linux查看硬碟信息命令
[root@111 ~]# fdisk -l Disk /dev/sda: 53.7 GB, 53687091200 bytes------------硬盘的设备文件是以sd开头的,第一块是a,第二块是b...... 255 heads, 63 sectors/track, 6527 cylinders-------255个磁头,磁道上有63个扇区,6527个柱面 Units = cylinders of 16065 * 512 = 8225280 bytes----------一个柱面的大小=512*63*255=8225280字节 Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000876f3 Device Boot Start End Blocks Id System-------------分区的信息 /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 230 1638400 82 Linux swap / Solaris Partition 2 does not end on cylinder boundary. /dev/sda3 230 6528 50584576 83 Linux
[root@111 ~]# parted GNU Parted 2.1 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print---------------------------需要输入print打印出来查看硬盘信息 Model: VMware, VMware Virtual S (scsi) Disk /dev/sda: 53.7GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags----------------分区的信息 1 1049kB 211MB 210MB primary ext4 boot 2 211MB 1888MB 1678MB primary linux-swap(v1) 3 1888MB 53.7GB 51.8GB primary ext4
2.MBR
MBR:MasterBootRecord:主引导记录
每位光驱都有MBRlinux分区查看,假若操作系统没有装在硬碟里,就没有主引导程序数据
硬碟的0柱面、0磁道、1磁道称为主引导磁道,不属于任何分区
MBR大小512字节(由于一个磁道默认大小为512字节),分为三个部份
1.主引导程序:446字节(引导操作系统正常启动,被破坏系统不能启动)
2.硬碟分区表DPT:64字节(主分区和扩充分区占用16字节的空间,因而不少于四个,扩充分区不可以直接储存文件,可以添加多个逻辑分区)
3.分区结束标记也叫硬碟有效标志:2字节,固定为55AA
3.硬碟的分区
DPT:c盘分区表
DPT大小64字节
分区类型:(1)主分区(2)扩充分区(3)逻辑分区
每位主分区信息要占用16个字节
扩充分区信息也要占用16个字节的主分区空间
分区次序以数字表示,逻辑分区一定是从5开始表示的
fdisk:查看分区信息和建立分区(只支持小容量硬盘<=2T) 格式:fdisk [磁盘设备] 建立分区 交互模式中的常用指令 w:保存分区设置并退出 q:放弃分区设置并退出 m:查看帮助 p:查看分区信息 n:新建分区 t:变更分区表类型
parted命令创建分区(分大容量硬盘>2T) 格式:parted 磁盘或分区(不需要保存退出) mkpart:创建新的分区表 print:查看当前分区 rm:删除分区 quit:退出 mklabel:创建新的类型的分区表,用parted命令创建gpt类型的分区表,相当于将原先msdos类型的分区表全部删除
partprobe--------------手工通知内核,读取新的分区表 修改磁盘分区之后不用重启,使用partprobe更新磁盘分区的变化 fdisk 在分区之后是自动调用函数去识别的,但是当硬盘的某个分区被挂载,正在使用中时,当在分区时,是不能自动识别的,所以需要手工调用函数partprobe
分区表的类型:msdos、gpt
fdisk支持小容量硬碟,只支持msdos类型的分区表,有主分区和逻辑分区
gpt:没有主分区和逻辑分区的分辨,没有四个主分区的限制
4.破坏MBR实例
MBR储存的数据很重要,要备份
dd命令:从底层复制硬碟的数据(不指定的话,从最小的字节开始复制)
格式:ddif=输入文件of=输出文件bs=单位大小count=数量
备份MBR: dd if=/dev/sda of=mbr.bak bs=512 count=1(一次抽取512字节,抽取一次,因此备份了MBR的数据) 还原MBR: dd if=mbr.bak of=/dev/sda bs=512 count=1
跳过个别字节
bs=ibs+obs
seek=BLOCKSskipBLOCKSobs-sizedblocksatstartofoutput(从输入文件跳过blocks个快后再开始复制)
skip=BLOCKSskipBLOCKSibs-sizedblocksatstartofinput
实例:在执行实例之前,首先将MBR的所有数据备份到另外一块硬碟中
破坏MBR(破坏之前要备份linux安全加固linux操作系统界面,备份到其他硬碟)
1.破坏400字节(系统不能启动不能从硬碟启动Linux)
2.只破坏56字节(系统可以启动,找不到分区linux分区查看,找不到内核程序)
[root@localhost opt]# mkfs.ext4 /dev/sdb1 [root@localhost opt]# mount /dev/sdb1 /opt/test [root@localhost test]# dd if=/dev/sda of=/opt/test/test.bak bs=512 count=1 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.000511116 s, 1.0 MB/s [root@localhost opt]# dd if=/dev/zero of=/dev/sdb bs=512 count=1
搜救环境会找硬碟上面的Linux,找到后挂载到光碟上面的/mnt/sysimage,
然后启动shell
2.
[root@localhost opt]# fdisk -l /dev/sdb (硬盘分区) Device Boot Start End Blocks Id System /dev/sdb1 1 1306 10490413+ 83 Linux [root@localhost opt]/s# mkfs.ext4 /devdb1 (硬盘格式化) [root@localhost opt]# mkdir test [root@localhost opt]# mount /dev/sdb1 /opt/test (挂载分区到/opt/test目录下) [root@localhost opt]# dd if=/dev/sdb of=/opt/test/test.bak bs=512 count=1 (备份) 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.0128542 s, 39.8 kB/s [root@localhost opt]# dd if=/dev/zero of=/dev/sdb seek=446 obs=1 ibs=64 count=1(破坏DBT) [root@localhost opt]# fdisk -l /dev/sdb (对比刚开始,分区已经识别不到了) Device Boot Start End Blocks Id System [root@localhost opt]# dd if=/opt/test/test.bak of=/dev/sdb seek=64 obs=1 ibs=64 count=1 (恢复DBT) 1+0 records in 64+0 records out 64 bytes (64 B) copied, 0.000596968 s, 107 kB/s [root@localhost opt]# fdisk -l /dev/sdb Device Boot Start End Blocks Id System