【Linux】Linux磁盘扩容

查看当前的磁盘

1
df -TH

输出

1
2
3
4
5
6
Filesystem     Type   Size  Used Avail Use% Mounted on
tmpfs tmpfs 1.7G 1.1M 1.7G 1% /run
/dev/vda2 ext4 43G 31G 11G 75% /
tmpfs tmpfs 8.2G 33k 8.2G 1% /dev/shm
tmpfs tmpfs 5.3M 0 5.3M 0% /run/lock
tmpfs tmpfs 1.7G 4.1k 1.7G 1% /run/user/1000

确认当前的磁盘

1
sudo fdisk -l

会输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 系统盘有40G
Disk /dev/vda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 05ABB582-8C87-4CAF-8A44-E51F9A3A6625

Device Start End Sectors Size Type
/dev/vda1 2048 4095 2048 1M BIOS boot
/dev/vda2 4096 83886046 83881951 40G Linux filesystem

# 数据盘vdb有100GB,这个就是我们要新增的数据盘了
Disk /dev/vdb: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

查看磁盘系统类型

1
sudo file -s /dev/vdb

输出

1
/dev/vdb: Linux rev 1.0 ext4 filesystem data, UUID=ecd8eba2-c630-43dc-b907-438b1e5be7df (needs journal recovery) (extents) (64bit) (large files) (huge files)

可以看到 vdb 是 ext4

格式化文件系统

1
mkfs -t ext4 /dev/vdb

挂载

1
2
3
4
# 确保目标文件夹存在
mkdir /data
# 挂载
sudo mount /dev/vdb /data

确认挂载成功

1
df -TH

输出

1
2
3
4
5
6
7
8
ubuntu@VM-1-7-ubuntu:/etc$ df -TH
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 1.7G 1.2M 1.7G 1% /run
/dev/vda2 ext4 43G 31G 11G 75% /
tmpfs tmpfs 8.2G 33k 8.2G 1% /dev/shm
tmpfs tmpfs 5.3M 0 5.3M 0% /run/lock
tmpfs tmpfs 1.7G 4.1k 1.7G 1% /run/user/1000
/dev/vdb ext4 106G 7.0G 93G 7% /data

可以看到多出了一个,就说明成功了

开机自动挂载

注意:在机器重启后/data下的东西会不见,并不是他不在(使用sudo fdisk -l确认),而是没有挂载上去。这就是因为你没有设置开机自动挂载,如果你真碰到这种情况也不要害怕,重新挂载一遍就好了sudo mount /dev/vdb /data。但是千万要注意,不要格式化!!!不要格式化!!!不要格式化!!!

设置自动挂载

  1. 先备份配置文件

    1
    cp /etc/fstab /etc/fstab.bak
  2. 再将命令行写入

    1
    echo "UUID=$(sudo blkid -s UUID -o value /dev/vdb) /data ext4 defaults 0 0" | sudo tee -a /etc/fstab
  3. 确认文件正常

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    cat /etc/fstab

    ubuntu@VM-1-7-ubuntu:/etc$ cat /etc/fstab
    # /etc/fstab: static file system information.
    #
    # Use 'blkid' to print the universally unique identifier for a
    # device; this may be used with UUID= as a more robust way to name devices
    # that works even if disks are added and removed. See fstab(5).
    #
    # <file system> <mount point> <type> <options> <dump> <pass>
    # / was on /dev/vda2 during curtin installation
    /dev/disk/by-uuid/7bccaefa-b039-4ff6-bd32-22dde0066c0b / ext4 defaults 0 1
    /swapfile none swap sw 0 0
    UUID=ecd8eba2-c630-43dc-b907-438b1e5be7df /data ext4 defaults 0 0