Skip to content

磁盘操作

基本操作

向军大叔每晚八点在 抖音bilibli 直播

为了进行本章学习,我们在虚拟机中添加一个新的磁盘。

image-20200805000123867

以易识别的单位查看分区情况

df -h

显示结果如下

$ df -h
文件系统             容量  已用  可用 已用% 挂载点
devtmpfs             1.9G     0  1.9G    0% /dev
tmpfs                1.9G     0  1.9G    0% /dev/shm
tmpfs                1.9G  8.5M  1.9G    1% /run
tmpfs                1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/cl-root  6.2G  1.8G  4.5G   28% /
/dev/sda1            976M  129M  781M   15% /boot
tmpfs                378M     0  378M    0% /run/user/1000

查看计算机中硬盘与分区信息

fdisk –l

显示结果如下

  • /dev/sdb 为第二个磁盘
$ sudo fdisk -l
Disk /dev/sda:8 GiB,8589934592 字节,16777216 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf38e7418

设备       启动    起点     末尾     扇区 大小 Id 类型
/dev/sda1  *       2048  2099199  2097152   1G 83 Linux
/dev/sda2       2099200 16777215 14678016   7G 8e Linux LVM


Disk /dev/sdb:4 GiB,4294967296 字节,8388608 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘分区

下面来对新增的磁盘 /dev/sdb 进行分区操作

  1. 创建第一个 2G 的主分区

    $ sudo fdisk /dev/sdb
    [sudo] xj 的密码:
    
    欢迎使用 fdisk (util-linux 2.32.1)。
    
    命令(输入 m 获取帮助):n
    分区类型
       p   主分区 (0个主分区,0个扩展分区,4空闲)
       e   扩展分区 (逻辑分区容器)
    选择 (默认 p):p
    分区号 (1-4, 默认  1): 1
    第一个扇区 (2048-8388607, 默认 2048):
    上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-8388607, 默认 8388607): +2G
    
    创建了一个新分区 1,类型为“Linux”,大小为 2 GiB。
    
    命令(输入 m 获取帮助):p
    Disk /dev/sdb:4 GiB,4294967296 字节,8388608 个扇区
    单元:扇区 / 1 * 512 = 512 字节
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0xc7c91aa0
    
    设备       启动  起点    末尾    扇区 大小 Id 类型
    /dev/sdb1        2048 4196351 4194304   2G 83 Linux
    
    命令(输入 m 获取帮助):

    image-20200805000624578

  2. 将剩余空间分给扩展分区

    命令(输入 m 获取帮助):n
    分区类型
       p   主分区 (1个主分区,0个扩展分区,3空闲)
       e   扩展分区 (逻辑分区容器)
    选择 (默认 p):e
    分区号 (2-4, 默认  2):
    第一个扇区 (4196352-8388607, 默认 4196352):
    上个扇区,+sectors 或 +size{K,M,G,T,P} (4196352-8388607, 默认 8388607):
    
    创建了一个新分区 2,类型为“Extended”,大小为 2 GiB。
    
    命令(输入 m 获取帮助):p
    
    设备       启动    起点    末尾    扇区 大小 Id 类型
    /dev/sdb1          2048 4196351 4194304   2G 83 Linux
    /dev/sdb2       4196352 8388607 4192256   2G  5 扩展
  3. 将扩展分区分出一个 1G 的逻辑分区

命令(输入 m 获取帮助):n
所有主分区的空间都在使用中。
添加逻辑分区 5
第一个扇区 (4198400-8388607, 默认 4198400):
上个扇区,+sectors 或 +size{K,M,G,T,P} (4198400-8388607, 默认 8388607): +1G

创建了一个新分区 5,类型为“Linux”,大小为 1 GiB。

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

设备       启动    起点    末尾    扇区 大小 Id 类型
/dev/sdb1          2048 4196351 4194304   2G 83 Linux
/dev/sdb2       4196352 8388607 4192256   2G  5 扩展
/dev/sdb5       4198400 6295551 2097152   1G 83 Linux
  1. 将剩下的扩展分区再分配给逻辑分区(直接回车)

    命令(输入 m 获取帮助):n
    所有主分区的空间都在使用中。
    添加逻辑分区 6
    第一个扇区 (6297600-8388607, 默认 6297600):
    上个扇区,+sectors 或 +size{K,M,G,T,P} (6297600-8388607, 默认 8388607):
    
    创建了一个新分区 6,类型为“Linux”,大小为 1021 MiB。
    
    命令(输入 m 获取帮助):p
    
    设备       启动    起点    末尾    扇区  大小 Id 类型
    /dev/sdb1          2048 4196351 4194304    2G 83 Linux
    /dev/sdb2       4196352 8388607 4192256    2G  5 扩展
    /dev/sdb5       4198400 6295551 2097152    1G 83 Linux
    /dev/sdb6       6297600 8388607 2091008 1021M 83 Linux
  2. 将分区写入磁盘

    命令(输入 m 获取帮助):w
  3. 查看分区结果

    $ sudo fdisk /dev/sdb -l
    
    设备       启动    起点    末尾    扇区  大小 Id 类型
    /dev/sdb1          2048 4196351 4194304    2G 83 Linux
    /dev/sdb2       4196352 8388607 4192256    2G  5 扩展
    /dev/sdb5       4198400 6295551 2097152    1G 83 Linux
    /dev/sdb6       6297600 8388607 2091008 1021M 83 Linux

格式化

磁盘进行了分区,并不能直接使用,必须进行格式化创建文件系统后才可使用。下面依次对主分区与逻辑分区进行格式化。

$ sudo mkfs -t ext4 /dev/sdb1
$ sudo mkfs -t ext4 /dev/sdb5
$ sudo mkfs -t ext4 /dev/sdb6

磁盘挂载

磁盘分区、格式化后要挂载后才可以使用。一个目录就是挂载点,我们通过这个目录来访问磁盘分区。

创建目录/www 来挂载 /dev/sdb1

$ sudo mkdir /www
$ sudo mount /dev/sdb1 /www

查看挂载点

$ sudo mount | grep sdb

也可以使用 df 命令操作

sudo df

结果如下

文件系统              1K-块    已用    可用 已用% 挂载点
devtmpfs            1916944       0 1916944    0% /dev
tmpfs               1934568       0 1934568    0% /dev/shm
tmpfs               1934568    8668 1925900    1% /run
tmpfs               1934568       0 1934568    0% /sys/fs/cgroup
/dev/mapper/cl-root 6486016 1794984 4691032   28% /
/dev/sda1            999320  131696  798812   15% /boot
tmpfs                386912       0  386912    0% /run/user/1000
/dev/sdb1           1998672    6144 1871288    1% /www

取消挂载

$ sudo umount /dev/sdb1

自动挂载

手动挂载后重起计算机后,还需要重新挂载,可以通过修改/etc/fstab 来让系统启动时自动挂载。

编辑文件

sudo vim /etc/fstab

修改内容如下

...
/dev/sdb1       /www                            ext4    defaults        0 0
...

使用 mount –a 进行测试,mount -a 命令是根据/etc/fstab 设置挂载分区

sudo mount -a

执行命令没有错误提示即表示配置正确