linux磁盘管理

磁盘分区

磁盘分区类型和特点

DOS分区表: 只能用于小于2T的硬盘(常用)。也就是MBR分区

GPT分区表: 万能分区表(小于2T,大于2T都可以)。

MBR分区

  1. 主分区:
  • 必须存在的分区
  • 装系统(第一个主分区)
  • 主分区数量不能超过4个
  • 分区编号,只能是1-4
  1. 扩展分区
  • 独立小磁盘,有独立分区表,不能直接放数据。
  • 占用主分区编号(2-4),主分区+扩展分区最多4个
  • 最多只能有1个。
  • 要想存数据必须在其下划分逻辑分区。
  1. 逻辑分区
  • 不能独立存在,必须在扩展分区之上。
  • 编号最小是5,及以上。
  • 用来存放数据。

GPT分区

  • GPT分区没有扩展分区 ,他可以分128个主分区。
  • 使用gdisk或parted工具

分区工具

fdisk(只能用于MBR类型)

fdisk 是 Linux 的磁盘分区表操作工具,只能用于MBR类型,支持创建、删除和修改分区。

用法

fdisk [-l] 名称

选项与参数:  
-l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来
-lu:显示分区磁盘的详细内容,包括分区类型。

d   delete a partition           #删除分区
m   print this menu              #打印帮助
n   add a new partition          #添加新分区
p   print the partition table    #打印分区表
q   quit without saving changes  #退出不保存
w   write table to disk and exit #保存并退出

fdisk 添加分区

fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x9068f0a6 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n    ###添加新分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)  #主分区
   e   extended   #扩展分区
Select (default p): p     ###选择主分区
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G   ###设置大小为10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB  

命令(输入 m 获取帮助):w   ###退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

分区以后通知内核分区表已经修改:

partprobe /dev/sdb

fdisk删除分区

fdisk /dev/sdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
Disk identifier: 2DCCA8BC-D71C-4954-8BE9-FEAA1EB765EE


#         Start          End    Size  Type            Name
 1         2048     20973567     10G  Linux filesyste Linux filesystem
 2     20973568     25167871      2G  Linux filesyste Linux filesystem

命令(输入 m 获取帮助):d    #删除分区
分区号 (1,2,默认 2):2     #选择分区号为2
分区 2 已删除

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
Disk identifier: 2DCCA8BC-D71C-4954-8BE9-FEAA1EB765EE


#         Start          End    Size  Type            Name
 1         2048     20973567     10G  Linux filesyste Linux filesystem

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

删除分区之后,通知内核分区表已经修改:

partprobe /dev/sdb

警告:删除分区时要小心,请看好分区的序号,如果您删除了扩展分区,扩展分区之下的逻
辑分区都会删除;所以操作时一定要小心;如果知道自己操作错了,请不要惊慌,用 q 不保
存退出;切记切记!!!!在分区操作错了之时,千万不要输入 w 保存退出!!!

gdisk

gdisk既可以用于MBR分区也可以用于GPT分区,支持创建、删除和修改分区

用法:

gdisk /dev/磁盘名
-n 创建一个新分区
-p 显示当前磁盘的分区表
-w 将更改写入并退出
-q 不保存退出
-d 删除分区

不常用的:
b 将GPT数据以文件格式备份
c 更改分区名
i 显示分区详细信息
l 列出分区类型
o 创建一个新的空白GPT分区表
p 显示当前磁盘的分区表
t 改变分区类型
v 验证磁盘分区表
x 专家模式
? 帮助

gdisk添加分区

gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************


Command (? for help): n    #创建一个新分区
Partition number (2-128, default 2):   #输入分区编号
First sector (34-41943006, default = 20973568) or {+-}size{KMGTP}:  #输入扇区的开始位置,选择默认即可,也可手动指定。
Last sector (20973568-41943006, default = 41943006) or {+-}size{KMGTP}: +2G  #输入扇区的结束位置,当然一般都是指定磁盘大小,这里输入+2G表示新分区大小为2G。
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):  ##指定文件系统,默认即可,分区完成后可以修改。
Changed type of partition to 'Linux filesystem'

Command (? for help): p   #显示当前磁盘的分区表
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 2DCCA8BC-D71C-4954-8BE9-FEAA1EB765EE
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 16777149 sectors (8.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        20973567   10.0 GiB    8300  Linux filesystem
   2        20973568        25167871   2.0 GiB     8300  Linux filesystem

Command (? for help): w   #将更改写入并退出

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y   #确认更改
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

添加分区之后,通知内核分区表已经修改:

partprobe /dev/sdb

gdisk删除分区

gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): d  #删除分区
Partition number (1-2): 2  #选择分区2

Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 2DCCA8BC-D71C-4954-8BE9-FEAA1EB765EE
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 20971453 sectors (10.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        20973567   10.0 GiB    8300  Linux filesystem

Command (? for help): w  #保存并退出

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdb.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.

删除分区之后,通知内核分区表已经修改:

partprobe /dev/sdb

parted

parted用于对磁盘(或RAID磁盘)进行分区及管理,与fdisk分区工具相比,支持2TB以上的磁盘分区,也可以划分普通的MBR分区。

用法

-h:显示帮助信息;
-i:交互式模式;
-s:脚本模式,不提示用户;
-v:显示版本号。

命令行模式查看指定分区:
parted /dev/sdb print

进入交互模式
parted

    交互模式下获取帮助
    help

    获取指定命令帮助文档
    help command

    选择分区
    select /dev/sdb

    查看分区信息剩余磁盘空间
    print free

    删除一个分区
    rm 1
    print

    创建一个分区
    mkpart

    将磁盘格式化为GPT磁盘
    mklabel gpt

    将磁盘格式化为MBR磁盘
    mklabel msdos

    gpt格式下创建一个分区
    mkpart

    退出交换模式
    quit

parted添加分区

parted  /dev/sdb
(parted) print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name              
 1      1049kB  10.7GB  10.7GB  ext4         Linux filesystem

(parted) mkpart        
分区名称?  []? sdb3
文件系统类型?  [ext2]? ext3
起始点? 12G
结束点? 15G
(parted) print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name              
 1      1049kB  10.7GB  10.7GB  ext4         Linux filesystem
 2      12.0GB  15.0GB  3000MB               sdb3

(parted) q
信息: You may need to update /etc/fstab.

删除分区

parted  /dev/sda
GNU Parted 3.1
使用 /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /dev/sdb
使用 /dev/sdb
(parted) rm 2
(parted) print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name              
 1      1049kB  10.7GB  10.7GB  ext4         Linux filesystem

(parted) q
信息: You may need to update /etc/fstab.

swap虚拟分区

什么是swap虚拟分区

swap是一个虚拟的内存空间,作用是当系统的物理内存不够时,将硬盘空间的一部分空间释放出来,以供当前运行的程序使用。

当物理内存不够时会随机kill占用内存的进程,从而产生oom,使用swap可以弥补内存不足,防止重要的进程被kill

如何使用

  1. 找一块硬盘划分1G分区,使用fdisk去划分
  2. 格式化为swap分区 mkswap /dev/sdb1
  3. 通过swapon -a /dev/sdb1 将该设备加入已有磁盘空间
  4. 使用free -m 检查swap的大小
  5. 想要永久生效需要加入到开机自启

禁用swap

# 禁用该设备使用虚拟分区
swapoff /dev/sdb1  

# 禁用所有设备使用swap
swapoff -a 

# 想要永久生效需要加入到开机自启

格式化磁盘

可以格式化整个磁盘,也可以格式化磁盘中的分区

为什么需要格式化:

磁盘分区在没有格式化前,操作系统是无法识别系统上磁盘分区格式的,也就无法存取文件目录属性和权限等内容,把分区格式化成操作系统支持的某个文件系统后,再存放数据,系统就会根据这个文件系统的格式进行存取文件了。

mkfs的参数

-t 指定文件系统类型,ext4,xfs等
-i 设定inode大小
-N 设定inode数量

mkfs -t ext4 /dev/sdb

什么是文件系统

【文件系统】是一种【存储和组织计算机中数据文件的机制或方法】,它使得对计算机内的数据的存储、访问和查找变得更容易、简单。文件系统落到计算机里其实就是一个应用软件。如ext2、ext3(CentoS5.x )、ext4(CentoS6.x)、xfs(CentOS7.x)、zfs和Reiserfs或FAr、NTFs等都是常见文件系统。

查看文件系统

df -T

挂载磁盘

mount常用参数

# -t 指定文件系统
# -a 挂载/etc/fstab配置文件中的配置
# -o 指定挂载的参数(权限,功能)

mount -t ext4 /dev/sdb /opt

永久挂载

写入/etc/fstab

/etc/fstab 配置文件格式:

/dev/sdb1     /mnt         xfs        defaults      0       0
要挂载的设备    挂载点     文件系统类型  挂载参数    是否备份  是否检查

写入/etc/rc.local里

which查找mount命令的命令文件位置,用绝对路径的方式挂载磁盘,写入到/etc/rc.local里

vim /etc/rc.local
/usr/bin/mount /dev/sdc1 /data

这种方式需要给rc.local授予执行权限

umount取消挂载

umount /opt 或者 umount /dev/sdb

# -l 强制卸载
posted @ 2025-08-13 20:01  阿峰博客站  阅读(27)  评论(0)    收藏  举报