一、设备
在Linux中,一切皆“文件”。
- 设备分为:
块设备(b):block,块文件存储,例如磁盘;
字符设备(c):char,字符文件存储,例如键盘 - 机械硬盘相关的几个名词:
track:磁道
cylinder:柱面
sector:扇区
rpm:转速 rotation per minute - 分区是根据cylinder来分
- BIOS(基本输入/输出设备)和MBR(Master Boot Record)磁盘主引导记录
- UEFI:统一可扩展固件接口(Unified Extensible Firmware Interface),相对于BIOS;GPT,相对于MBR;
- MBR分区列表最多可以支持管理2TB的硬盘,GPT分区列表可以支持管理128PB(1PB=1024TB)
- MBR上可创建最多4个主分区,一般的方法是创建3个主分区,一个扩展分区,然后再在扩展分区创建逻辑分区。
- Linux可以装多个磁盘设备,其命名规则以SCSI的/dev/sd为例,从a-z,例如sda,sdb就表示磁盘a和b;而每一个设备可以分区,分区命名规则用数字表示,如sda1,sda2,逻辑分区从5开始。
二、分区管理
1. fdisk
fdisk [options] <disk> change partition table. # 进入分区管理交互窗口进行分区 如:# fdisk /dev/sda
fdisk [options] -l <disk> list partition table(s) # 显示当前的设备分区情况,如: # fdisk -l /dev/sda
- 交互式问答界面的子命令,可键入 m 查看
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。 # 删除分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types # 列出系统当前支持的分区类型及id
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 # 改变分区id
u change display/entry units # 改变分区显示单位,默认是sector扇区
v verify the partition table
w write table to disk and exit # 保存更改分区信息并退出
x extra functionality (experts only)
- NOTE:在分区错误或不确定自己的分区操作命令正确与否,或错误更改分区信息时,一定不要键入 w 保存,用 q 退出再重新操作。
2. parted
3. sfdisk
4. lsblk
以树状结构列出当前已有分区信息。
# lsblk -flp
5. 查看当前分区信息也可以用
# cat /proc/partitions
6. 通知内核重新读取分区信息
-
# partx -a /dev/sda
# 一般执行两次即可 # kpartx -a /dev/sda
# partprobe /dev/sda
- 或者重启
当分区完,执行完partx(或partprobe)后,不能在/dev下找到新分区的设备,格式化分区报块设备不存在时,可以通过下列方法。
方法一:通过命令mknod /dev/sda4 b 8 4(其中b是block型设备文件,8是主设备号,4是辅助设备号),该方法新建的块设备会存在权限不一致,可执行
chmod --reference=sdc sdc1
方法二:利用start_udev中创建设备文件