Linux磁盘和分区管理

一、设备

在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] change partition table. # 进入分区管理交互窗口进行分区 如:# fdisk /dev/sda
fdisk [options] -l 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中创建设备文件

你可能感兴趣的:(Linux磁盘和分区管理)