linux 磁盘管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 磁盘管理相关的知识,希望对你有一定的参考价值。
-
创建设备文件
mknod /app/sda b 8 0 mknod /app/zhongduan1 c 4 1
-
命名规则
-
- centos5及之前
ide /dev/hda
/dev/hdb
...
/dev/hdaa
sata/sas/scsi/usb /dev/sda
/dev/sdb
- centos5及之前
-
-
centos6及之后
sata/sas/scsi/usb/ide /dev/sda
-
-
kvm虚拟机的虚拟硬盘 /dev/vda
xen虚拟机的虚拟硬盘 /dev/xvda
vmware的虚拟硬盘 /dev/sda
-
磁盘的三围
c:2^10=1024 c:表示柱面 h:2^8=256 h:表示磁头也是磁道面 s:2^6=64 s:表示扇区
一个扇区大小512byte
256*64*1024*512/1024/1024/1024=8GB
单位大小:K, M, G, T, P, E, Z, Y, B, N, D
1.Bios basic input/output system 自检
2.由第一启动项,引导OS
3.MBR Master boot record 主引导记录
446 boot loader
lilo linux loader
grub
grub2
16*4=64 分区
55 AA 结束位
16字节 CHS 24bit
分区是否活动 head 扇区6 2+ 8 =10 柱面 分区的类型 head 扇区6 2+ 8 =10 柱面
1 2 3 4 5 6 7 8
9 16 表示扩展分区
-
dd命令
skip=xxx 是在备份时对if后面的部分也就是原文件跳过多少块 seek=xxx 是在备份时对of后面的部分也就是目标文件跳过多少块开始写
实验一:备份mbr,并破坏,再恢复
1.备份mbr
dd if=/dev/sda of=/app/mbr.img bs=1 count=512
2.将mbr.img 复制到其他主机 sz /app/mbr.img
3.破坏mbr
dd if=/dev/zero of=/dev/sda bs=1 count=512
4.关机
5.在另一个主机上将被破坏的硬盘添加
6.在vmware虚拟机,新加硬盘不用重启的生效方法
echo ‘- - -‘ > /sys/class/scsi_host/host0/scan
7.恢复
dd if=mbr.img of=/dev/sdb
8.poweroff
9.开启被恢复的主机
10.从恢复机中删除故障硬盘
实验二:仅破坏分区表,并恢复.
dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446
dd if=/app/mbr.img of=/dev/sda bs=1 count=64 skip=446 seek=446
实验三:新增硬盘sdb,并使用sda的mbr备份来恢复sdb的分区表
dd if=/app/mbr.img of=/dev/sdb bs=1 count=66 skip=446 seek=446
- lsblk
-
parted
parted 支持msdos和gpt 交互和非交互 parted /dev/sda parted -l 列出所有硬盘的分区信息 parted /dev/sda print 列出指定硬盘的分区 parted /dev/sdb mklabel msdos 设置硬盘的分区类型 或gpt parted /dev/sdb mklabel msdos -s 自动回答yes parted /dev/sdb mkpart primary 1 2G parted /dev/sdb mkpart primary 2G 4G parted /dev/sdb mkpart primary 4G 6.5G parted /dev/sdb mkpart extended 6.5G 21.5G parted /dev/sdb mkpart logical 6.5G 7G fdisk 支持msdos,在centos7中也支持gpt(不建议使用) fdisk -l 查看所有硬盘的分区信息 fdisk -l /dev/sda 查看指定硬盘的分区信息
-
fdisk
fdisk /dev/sdb o 设置msdos分区表 g 设置gpt分区表(不建议使用) m 帮助 n 创建分区 p 主分区 e 扩展分区 (请把所有空间分给扩展) 起始的扇区数 一般直接回车,取可用的最小扇区 结束的扇区数 一般用+XX K/M/G 来指定具体分多少大小的分区 q 退出不保存 w 退出并保存 t 设置分区的类型 L 查看分区的类型所对应的代码表示方式 d 删除指定分区 a 设置该分区为启动分区,或设置为非启动 p 显示分区表 u 更新显示分区起止的单位,在扇区和柱面之间切换
非交互方式
echo -e "n\np\n\n\n+1G\nw\n" |fdisk /dev/sdb &> /dev/null -
gpgdisk
gdisk 只能划分gpt分区 gdisk -l 列出所有硬盘分区表 gdisk -l /dev/sdb 列出指定硬盘的分区表 gdisk /dev/sdb 对分区进行划分 o 创建gpt分区表 m 帮助 n 创建分区 起始的扇区数 一般直接回车,取可用的最小扇区 结束的扇区数 一般用+XX K/M/G 来指定具体分多少大小的分区 q 退出不保存 w 退出并保存 t 设置分区的类型 L 查看分区的类型所对应的代码表示方式 d 删除指定分区 p 显示分区表 非交互方式 echo -e "n\n\n\n+2G\n\nw\ny\n" |gdisk /dev/sdb cat /proc/partitions 当前内核所加载的分区表
对于非系统所在硬盘,内核自动更新分区表,而对于系统所在硬盘,不能直接列新,要使用以下命令
通知内核读取分区表
cenots5\centos7: partprobe (centos6不可用)
centos6:partx -a /dev/sda 添加
partx -d --nr /dev/sda7 删除
以上是关于linux 磁盘管理的主要内容,如果未能解决你的问题,请参考以下文章