磁盘知识总结
一、磁盘分区知识总结
一)磁盘存储逻辑结构
主分区(primary)、扩展分区(extend)、逻辑分区
备份命令:dd if=/dev/sda of=mbr.bin bs=512 count=1
一块磁盘的分区表占有64btyes大小,每个分区占用16个字节,因此一块磁盘仅支持四个分区表信息,即主分区+扩展分区的总量不超过4个。
二)磁盘分区注意事项
- 任意多个主分区,1<=主分区数<=4
- 扩展分区和主分区可以组合,但1<=主分区数+扩展<=4
三)常规的分区方案
1、方案一:集群架构中的某个节点,数据有多少或者不重要
/boot 启动引导主分区 linux引导程序
swap sawp主分区 物理内存的两倍
/ 根分区 剩余磁盘大小给/
2、方案二:数据库及存储,有大量的重要的数据
/boot 100M
/ 50-200GB
swap 物理内存的1.5-2.0倍
/data 剩余硬盘大小,放数据库及存储数据的
3、方案三:门户级别或大型网站
/boot 100M
swap 物理内存的1.5倍
/ 50-200GB
剩余的空间保留,不在进行分区,将来分给那个部门,根据需求分区,此方法灵活
四)分区标识号
/dev/sda /dev/sdb ........ /dev/sda1 /dev/sda2 .........
五)文件系统
1、文件系统的定义
文件系统是指对一个存储设备上的数据和元素进行组织的一种机制
2、常见的文件系统
常用的文件系统类型:ext2 ext3 ext4 xfs NTFS FAT32 FAT 等
3、文件系统小结
- 文件系统是指对一个存储设备上的数据和元素进行组织的一种机制
- 分区必须只能有一种文件系统
- 分区必须格式化创建文件系统才能存放数据
- Linux常用的文件系统类型:ext2 ext3 ext4 zfs xfs Reiserfs等
4、查看系统支持的文件系统
ll /lib/modules/内核版本/kernel/fs/
CentOS7查看系统支持的文件系统
#ll /lib/modules/3.10.0-514.el7.x86_64/kernel/fs/
5、查看文件系统inode和block结构
dumpe2fs /dev/sda1
6、Linux查看分区文件系统类型(parted)
1、parted查看分区的文件系统类型
如果要查看 /dev/sda 各分区的文件系统类型,可以按照以下步骤来查看:(主要是print list命令)
# parted /dev/sda GNU Parted 2.1 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print list Model: VMware, VMware Virtual S (scsi) Disk /dev/sda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 1075MB 1074MB primary ext4 boot 2 1075MB 21.5GB 20.4GB primary ext4
2、扩展(df和fdisk)
fdisk -l 只能列出硬盘的分区表、容量大小以及分区类型,但看不到文件系统类型。
df 命令是用来查看文件系统磁盘空间使用量的。但df 命令只会列出已挂载的文件系统信息,对于没有挂载的文件系统是查看不到的。使用这个命令可以很方便的查看已挂载的文件系统的空间使用量、剩余空间大小等信息。
六)磁盘分区
假设我们的需求是分6个区
1P+1E(5 6 7 8 9) /dev/sdb5 /dev/sdb6 /dev/sdb7 /dev/sdb8 /dev/sdb9 2p+1E(5 6 7 8) 3p+1E(5 6 7)
1、fdisk分区工具(小于2T磁盘)
1、添加新的磁盘
- 关机增加一块新的硬盘
- 使用命令fdisk /dev/sdb进行分区
- 通知内存分区变化partprobe /dev/sdb
2、分区详解
# fdisk -cu /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x2a97a4a9. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won‘t be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition ----删除分区表 l list known partition types m print this menu --------------打印菜单 n add a new partition -----------创建分区 o create a new empty DOS partition table p print the partition table ----打印分区表 q quit without saving changes ---不保存退出 s create a new empty Sun disklabel t change a partition‘s system id u change display/entry units v verify the partition table w write table to disk and exit ---写入分区表并退出 x extra functionality (experts only) Command (m for help):
3、导出文件系统信息
dumpe2fs ----dumpe2fs - dump ext2/ext3/ext4 filesystem information
4、格式化分区
mkfs - build a Linux file system(格式化)
mkfs -t ext4 -I 1024 -b 8192 /dev/sdb1 mkfs.ext4 -I1024 /dev/sdb1 -t:指定文件类型 -I:指定inode节点大小(默认256) -b:指定block的大小 (最大4096)
# mkfs.ext4 /dev/sdb1 (格式化) mke2fs 1.41.12 (17-May-2010) 文件系统标签= 操作系统:Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 64000 inodes, 256000 blocks 12800 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=264241152 8 block groups 32768 blocks per group, 32768 fragments per group 8000 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 正在写入inode表: 完成 Creating journal (4096 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 This filesystem will be automatically checked every 25 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@chen ~]# tune2fs -c -1 /dev/sdb1 (取消时间过期) tune2fs 1.41.12 (17-May-2010) Setting maximal mount count to -1
5、挂载
mount /dev/sdb1 /mnt (挂载)
6、开机自动挂载
开机自动挂载:vi /etc/fstab
把挂载信息写入到/etc/rc.local等同在/etc/fstab
- 使用磁盘分区号:/dev/sdb1 /mnt /ext4 defaults 0 0
- 使用UUID:UUID=ccb0bb71-79fa-4670-8df1-0bc177936cac /mnt/ ext4 defaults,noexec 0 0
blkid -----查看uuid
# vi /etc/fstab # # /etc/fstab # Created by anaconda on Sun Mar 27 21:40:41 2016 # # Accessible filesystems, by reference, are maintained under ‘/dev/disk‘ # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=90d3bc5a-e19d-483b-ac91-a096be544704 / ext4 def aults 1 1 UUID=e0617ba5-095a-4474-bdc8-b3167dd8f58e /boot ext4 def aults 1 2 UUID=96be0e54-978f-41c1-8dc5-faf45eca854b swap swap def aults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 #/dev/cdrom /mnt/cdrom iso9660 defaults 0 0 UUID=ccb0bb71-79fa-4670-8df1-0bc177936cac /mnt/ ext4 defaults,noexec 0 0
7、磁盘分区、格式化和挂载小结
1)fsdisk -l 查看磁盘数和分区情况
2)fsdisk /dev/sdb 分区
3)mkfs.ext4 /dev/sdb1或 mkfs -t ext4 /dev/sdb1 格式化分区
tune2fs -c -1 /dev/sdb1
4)partprobe /dev/sdb 通知内核分区变化
5)mount /dev/sdb1 /opt 挂载; mount -a测试是否挂载成功
6)df -Th 或df -i 或 cat /proc/mounts 查看挂载后变化
2、parted分区工具(大于2T的磁盘)
parted命令就比较强大了,用parted命令可以对大于2TB的磁盘设备进行分区,以及创建GPT分区(而fdisk命令就办不到了)。
可在命令换行或脚本执行,此分区直接生效
1、parted常用命令

1、将磁盘上原有的分区删除掉: 进入:#parted /dev/sdb 查看:(parted)p 删除:(parted)rm 1 (parted)rm 2 2、将磁盘格式变成gpt的格式(因为parted只能针对gpt格式的磁盘进行操作) 转换:(parted) mklabel gpt 分区:(parted) mkpart primary 1 500 (分第一个主分区500MB) 分区:(parted) mkpart primary 501 1000 (分第二个主分区500MB) 分区:(parted) mkpart logical 1001 2000 (分第三个逻辑分区1000MB) (parted的逻辑分区不用先分扩展分区,直接一步到位) 查看:(parted) p 退出:(parted)quit ( parted分区自动保存,不用手动保存 ) 3、格式化已经分好的区 # mkfs -t ext4 /dev/sdb1 4、挂载 # mount /dev/sdb1 /mnt 5、开机自动挂载: # echo “/dev/sdb1 /mnt ext4 defaults 0 0” >>/etc/fstab
2、非交互性分区
非交互性批量对磁盘分区,挂载

#!/bin/bash yum install -y parted ##################################################################### b=1 sequence=`echo {b..k}` for disk in ${sequence} do parted /dev/sd${disk}</root/parted.txt mkfs.xfs /dev/sd${disk}$b if [ $? -eq 0 ]; then echo "/n/n****************/dev/sd${disk}$b Fdisked!Waithing For 10 second****/n/n" fi uuid=`blkid /dev/sd${disk}$b |awk '{print $2}'|awk -F"\"" '{print $2}'` cat << EXIT >/root/test1 UUID=$uuid /hd/hd${disk} xfs rw,noatime,inode64,allocsize=16m 0 1 EXIT cat /root/test1 >> /etc/fstab done mout -a
文件传入值

mklabel gpt yes mkpart primary 0 -1 ignore quit
二、查看磁盘转速
http://www.ttlsa.com/linux-command/get-disk-speed-on-linux/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具