fdisk -l # 查看硬盘上设备的真实存在的所有设备
cat /proc/partitions # 查看系统识别的设备
blkid # 查看系统可以使用的设备
df # 查看系统正在挂载的设备
df -h #查看到的设备大小更准确( 以2^n 计算 1M=1024K )
df -H #查看到的设备大小不准确( 以10^n 计算 1M=1000K )
注:从上到下,查看到的依次减少
[root@localhost Desktop]# fdisk -l
[root@localhost Desktop]# cat /proc/partitions
[root@localhost Desktop]# blkid
[root@localhost Desktop]# df
/dev/sda1 # /dev=设备 s=sata,d=disk,a表示第一块硬盘,1表示第一块磁盘的第一块
(1)设备名称
/dev/xdxn # 例如: /dev/sda /dev/vda /dev/hd0
x:硬盘类型(s:sata硬盘 h:串口硬盘 v:虚拟硬盘)
x:a..z,硬盘所在个数
n:1..16,分区所在个数
/dev/mapper/* # 生成的文件都是用软件生成的,因此称为虚拟设备
/dev/sr0 # 光驱
(2)设备的挂载
mount 设备 挂载点
mount /dev/sdb1 /mnt # 挂载/dev/sdb1设备到/mnt下
mount -o ro /dev/sdb1 /mnt # 只读挂载,ro表示只读
mount -o remount,rw /dev/sdb1 # 重新读写挂载,这个命令可以不用卸载之前的挂载
umoutn /mnt
umoutn /dev/sdb1 # 卸载,卸载的时候可以卸载设备,也可以卸载挂载点
mount # 查看挂载信息
(3)解决设备忙的情况
[root@foundation42 ~]# mount /dev/sdb1 /mnt
[root@foundation42 ~]# cd /mnt
[root@foundation42 mnt]# umount /mnt # 有的人不注意,直接在挂载点卸载设备,就会出现以下报错
第一种解决方案
[root@foundation42 mnt]# lsof /mnt # 挂载点是什么,命令后就跟啥
[root@foundation42 mnt]# kill -9 14610 # 杀死占用进程的PID号
[root@foundation42 mnt]# kill -9 16243
第二种解决方案
[root@foundation42 mnt]# fuser -vm /mnt
[root@foundation42 mnt]# kill -9 16787
[root@foundation42 mnt]# kill -9 16867
或者
[root@foundation42 mnt]# fuser -kvm /mnt #-v,详细信息,-m,查看有什么设备,-k,kill
[root@foundation78 /]# umount /dev/sdb1
[root@foundation78 mnt]# mount -o ro /dev/sdb1 /mnt # 只读挂载
[root@foundation78 mnt]# touch file
touch: cannot touch ‘file’: Read-only file system
[root@foundation78 mnt]# mount -o remount,rw /dev/sdb1 /mnt # 读写挂载
[root@foundation78 mnt]# touch file
[root@foundation78 mnt]# ls
???07161027 file java?? java????.zip System Volume Information
注:两个设备挂在同一个挂载点,第一个设备里的内容就会被覆盖,而且卸载的时候,要先卸载后挂载上去的,第一个挂载的才能被卸载
(1)MBR(master boot recoder)信息
硬盘0磁道1扇区的512个字节中记录的信息如下:
512 = 446 + 64 + 2
1.1 MBR主引导分区 446字节
1.2 MPT主分区表 64字节
1.3硬盘有效标示“55aa” 2字节
1.4分区大小为16字节,故有4个分区其中3个主分区,1个扩展分区,扩展分区中成为逻辑分区
主分区 :用分区表记录分区信息称为主分区
拓展分区:一种特殊的分区,专门用来存储更多的分区
逻辑分区:存储在拓展分区中的分区称为逻辑分区
1.5注意:MBR分区最大只能分2TB,可识别的分区总数为16,可用的为14
(2)文件系统类型
ext4 :支持1EB(1EB=1024PB 1PB=1024TB)的文件系统和单个16TB的文件linux 6的标准文件系统
ext2:支持最大分区4TB,最大文件2GB,适合小型存储设备
Vfat:支持包括一系列相关文件系统(VFAT/FAT16/FAT32),针对较旧版本的Microsoft Windows开发
Xfs:支持最大分区9EB linux 7的标准文件系统,数据完全、性能稳定、扩展性强(8E-1b),传输效率(7G/s)
(3)在硬盘中进行分区管理
[root@server ~]# fdisk -l # 查看分区
[root@server ~]# fdisk /dev/vdb # 进入硬盘分区界面,前三分区为主要(primary)分区,第四个分区为拓展(extending)分区(包括四个逻辑分区)
Command (m for help): m
Command (m for help): n # 新建分区
Command (m for help): p # 查看分区
Command (m for help): wq # 保存退出
[root@server ~]# partprobe # 将磁盘分区表变化信息通知内核,请求操作系统重新加载分区表
[root@server ~]# cat /proc/partitions # 查看自己刚才建立的分区
[root@server ~]# mount /dev/vdb1 /mnt # 把建立的分区挂载到/mnt下,但由于没有文件系统,不能挂载
mount: /dev/vdb1 is write-protected, mounting read-onlymount: unknown filesystem type '(null)'
[root@server ~]# mkfs.xfs /dev/vdb1 # 安装文件系统xfs,也可以理解为格式成xfs类型
[root@server ~]# blkid # 查看可用分区
[root@server ~]# mount /dev/vdb1 /mnt # 此时挂载就会不会报错
[root@server ~]# df
当三个主分区被占满时,第四个分区就要分成扩展分区
[root@server ~]# fdisk /dev/vdb
Command (m for help): n
Command (m for help): n # 继续添加
Command (m for help): p # 查看分区
[root@server ~]# partprobe
[root@server ~]# cat /proc/partitions
[root@server ~]# mkfs.xfs /dev/vdb5 # 格式化
[root@server ~]# mount /dev/vdb5 /mnt # 临时挂载
[root@server ~]# df
[root@server ~]# mkfs.xfs /dev/vdb5
[root@server ~]# vim /etc/fstab # 永久挂载
10 /dev/vdb5 /mnt xfs defaults 0 0
[root@server ~]# mount -a # 读取挂载策略,检测正确性
[root@server ~]# reboot # 重启之后,永久挂载生效
[root@server ~]# fdisk /dev/vdb
Command (m for help): d
Command (m for help): n
Command (m for help): wq
[root@server ~]# partprobe
[root@server ~]# mkfs.xfs /dev/vdb1 # 因为第一次建立第一块主分区时,已经格式化过了,系统有记录,两块分区名字一样,所以格式化失败
[root@server ~]# mkfs.xfs /dev/vdb1 -f # 按照上面的方法,进行格式化
(1)添加swap分区
[root@server ~]# fdisk /dev/vdb
Command (m for help): n
Command (m for help): t # 修改分区
idPartition number (1-6, default 6): 6 # 选择第六块分区
Hex code (type L to list all codes): L # 根据提示查看所有的id码
Hex code (type L to list all codes): 82 # 写上自己想要改变成为的id号
Changed type of partition 'Linux' to 'Linux swap / Solaris' # 修改成功
Command (m for help): p # 查看
[root@server ~]# partprobe
[root@server ~]# cat /proc/partitions
[root@server ~]# mkswap /dev/vdb6
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=7e31268d-145d-4431-8c25-99700b03ce4b
[root@server ~]# swapon -a /dev/vdb6 # 激活swap分区
[root@server ~]# swapon -s # 查看swap分区详细信息
Filename Type Size Used Priority
/dev/vdb6 partition 1023996 0 -1
[root@server ~]# vim /etc/fstab # 开机自动激活
10 /dev/vdb6 swap swap defaults 0 0
[root@server ~]# swapon -a # 开启全部的交换空间,也可以理解为检测语法的正确性
(2)删除分区
[root@server ~]# vim /etc/fstab # 删除下边那一行
/dev/vdb6 swap swap defaults 0 0
[root@server ~]# swapoff /dev/vdb6 # 停止设备(先)
[root@server ~]# swapon -s # 查看是否删除
[root@server ~]# fdisk /dev/vdb # 删除分区(后)
Command (m for help): d
Partition number (1-6, default 6): 6
Partition 6 is deleted
Command (m for help): p
[root@server ~]# partprobe # 重新加载分区表
注:删除分区时,要先停止设备,不能先删除分区
GUID磁盘分区表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识磁盘分区表”,是一个实体硬
盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,
被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。
Windows最大仅支持128个GPT分区,GPT可管理硬盘大小达到了18EB
[root@server ~]# parted /dev/vdb
(parted) mklabel # 按回车
New disk label type? # 双击tab键
aix amiga bsd dvh gpt loop mac msdos pc98 sun
New disk label type? gpt # 选择gpt类型
Warning: The existing disk label on /dev/vdb will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? yes
(parted) quit
[root@server ~]# fdisk /dev/vdb
Command (m for help): n
Command (m for help): p
Command (m for help): wq