Skip to content

磁盘查看和分区

常见的Linux管理操作和命令行操作

1. du查看文件和目录占用的磁盘空间

du: disk usage 磁盘占用情况
基本语法: du 目录/文件 (功能描述:显示目录下每个子目录的磁盘使用情况)

选项功能
-h以人们较易阅读的GBytes, MBytes, KBytes等格式自行显示;
-a不仅查看子目录大小,还要包括文件
-c显示所有的文件和子目录大小后,显示总和
-s只显示总和
--max-depth=n指定统计子目录的深度为第n层
sh
## 查看当前用户主目录占用的磁盘空间大小
[root@hadoop100 ~]# du -sh
## 查看/目录占用情况
[root@hadoop100 /]# du -ah --max-depth=1 /
128M    /boot
0    /dev
du: 无法访问"/proc/55920/task/55920/fd/4": 没有那个文件或目录
du: 无法访问"/proc/55920/task/55920/fdinfo/4": 没有那个文件或目录
du: 无法访问"/proc/55920/fd/3": 没有那个文件或目录
du: 无法访问"/proc/55920/fdinfo/3": 没有那个文件或目录
0    /proc
7.7M    /run
0    /sys
36M    /etc
32K    /root
307M    /var
1.0M    /tmp
1.2G    /usr
0    /bin
0    /sbin
0    /lib
0    /lib64
20K    /home
0    /media
0    /mnt
0    /opt
0    /srv
1.7G    /

1.1 查找linux下占用空间最大的文件

sh
# 先看看根目录下面
du -sh /* 
[root@hadoop103 ~]# du -sh /*
0       /bin
129M    /boot
0       /dev
36M     /etc
116K    /home
0       /lib
0       /lib64
0       /media
0       /mnt
15G     /opt
0       /proc
36K     /root
20M     /run
0       /sbin
0       /srv
0       /sys
192K    /tmp
1.5G    /usr
630M    /var
# 发现/opt占用磁盘较大,接着我们看opt目录
du -sh /opt/*
15G     /opt/module
662M    /opt/software

2. df查看磁盘空间使用情况

df: disk free空余磁盘 基本语法: df 选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)
选项说明:-h以人们较易阅读的GBytes, MBytes, KBytes等格式自行显示;

sh
## 查看磁盘使用情况
[root@hadoop100 /]# df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        476M     0  476M    0% /dev
tmpfs           487M     0  487M    0% /dev/shm
tmpfs           487M  7.7M  479M    2% /run
tmpfs           487M     0  487M    0% /sys/fs/cgroup
/dev/sda3        21G  1.7G   19G    9% /
/dev/sda1       497M  153M  344M   31% /boot
tmpfs            98M     0   98M    0% /run/user/0

tempfs是内存、虚拟内存中的文件

3. lsblk查看设备挂载情况

lsblk:(list block)列出块设备
基本语法: lsblk (功能描述:查看设备挂载情况)
选项说明:-f查看详细的设备挂载情况,显示文件系统信息

sh
## 列出块设备挂载情况
[root@hadoop100 /]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   25G  0 disk 
├─sda1   8:1    0  500M  0 part /boot
├─sda2   8:2    0    4G  0 part [SWAP]
└─sda3   8:3    0 20.5G  0 part /
sr0     11:0    1 1024M  0 rom

sr0就是光盘

sh
[root@hadoop100 ~]# vi /etc/hostname

4. mount/umount挂载/卸载

对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做"挂载"的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。
基本语法: mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)
umount 设备文件名或挂载点 (功能描述:卸载设备)

参数功能
-t vfstype指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:光盘或光盘镜像:iso9660DOS fat16 文件系统:msdosWindows 9x fat32 文件系统:vfatWindows NT ntfs 文件系统:ntfsMount Windows 文件网络共享:smbfsUNIX(LINUX) 文件网络共享:nfs
-o options主要用来描述设备或档案的挂接方式。常用的参数有:loop:用来把一个文件当成硬盘分区挂接上系统ro:采用只读方式挂接设备rw:采用读写方式挂接设备iocharset:指定访问文件系统所用字符集
device要挂接(mount)的设备
dir设备在系统上的挂接点(mount point)
sh
## sr0 光驱设备其实就是/dev/cdrom  
[root@hadoop100 /]# ls /dev/cdrom/
ls: 无法访问/dev/cdrom/: 不是目录
## 挂载光盘镜像文件 建立挂载点cdrom
[root@hadoop100 /]# mkdir /mnt/cdrom/ 
## 挂载到挂载点: /mnt/cdrom 中
[root@hadoop100 /]# mount -t iso9660 /dev/cdrom /mnt/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载 
[root@hadoop100 /]# ls /mnt/cdrom/
CentOS_BuildTag  EFI  EULA  GPL  images  isolinux  LiveOS  Packages  repodata  RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL
## 卸载光盘镜像文件
[root@hadoop100 /]# umount /mnt/cdrom

可以知道直接访问设备不能看到信息,挂载之后就可以访问。 设置开机自动挂载:

sh
修改/etc/fstab文件
vim  /etc/fstab
/dev/cdrom                              /mnt/cdrom              iso9660   defaults        0 0

其中后面两个0: 第一个0表示是否dump(磁盘备份), 第二个0表示是否开机磁盘检查

5. fdisk分区

基本语法: fdisk -l (功能描述:查看磁盘分区详情)
选项说明: -l显示所有硬盘的分区列表
fdisk 硬盘设备名 (功能描述:对新增硬盘进行分区操作)

警告

该命令必须在root用户下才能使用

sh
[root@hadoop100 /]# fdisk -l
磁盘 /dev/sda:26.8 GB, 26843545600 字节,52428800 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c62d6

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048     9414655     4194304   82  Linux swap / Solaris
/dev/sda3         9414656    52428799    21507072   83  Linux

6. 挂载硬盘实操

6.1 查看新添加的磁盘

现有服务器有1个4T硬盘,现在需要挂载该硬盘:

sh
[root@qjk-console dev]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  3.7T  0 disk 
├─sda1            8:1    0    2M  0 part 
├─sda2            8:2    0  500M  0 part /boot
├─sda3            8:3    0   16G  0 part [SWAP]
└─sda4            8:4    0  3.6T  0 part 
  └─centos-root 253:0    0  3.6T  0 lvm  /
sdb               8:16   0  3.7T  0 disk

可以看到这个硬盘就是sdb, 此时还没有进行分区。

6.2 为新添加的磁盘分区和格式化

sh
[root@qjk-console dev]# fdisk -l

磁盘 /dev/sdb:4000.8 GB, 4000787030016 字节,7814037168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

磁盘 /dev/sda:4000.8 GB, 4000787030016 字节,7814037168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:gpt
Disk identifier: DB594D81-F2A4-470D-B685-B2A110AABF47

#         Start          End    Size  Type            Name
 1         2048         6143      2M  BIOS boot       
 2         6144      1030143    500M  Microsoft basic 
 3      1030144     34584575     16G  Linux swap      
 4     34584576   7814035455    3.6T  Linux LVM       

磁盘 /dev/mapper/centos-root:3983.1 GB, 3983074656256 字节,7779442688 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节

磁盘sdb的路径是/dev/sdb, 容量为3.7T, 使用parted进行分区(因为fdisk不支持超过2TB的硬盘):

sh
[root@qjk-console dev]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

转换gpt分区:

sh
 mklabel gpt

分成一个分区:

sh
mkpart prinmary 1 -1

查看分区情况:

sh
(parted) print
Model: ATA ST4000NM002A-2HZ (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name      标志
 1      1049kB  4001GB  4001GB               prinmary

退出:

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

6.3 查看4T硬盘分区,并格式化磁盘

sh
[root@qjk-console dev]# cat /etc/fstab

# /etc/fstab
# Created by anaconda on Thu May  8 09:57:26 2025
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=d75366e2-4bdc-4f91-9f48-acb0624f4f73 /boot                   xfs     defaults        0 0
UUID=afd0efb0-6d08-426c-8da1-32956484354d swap                    swap    defaults        0 0

可以发现系统使用的磁盘格式化方式,采用的是xfs格式,因此我们也采用xfs格式化磁盘:

sh
[root@qjk-console dev]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=244188544 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=976754176, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=476930, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

6.4 手动挂载磁盘,把sdb1硬盘挂载到目录/disk2

sh
[root@qjk-console dev]# mkdir /disk2
[root@qjk-console dev]# mount /dev/sdb1 /disk2

挂载分区需要编写完整的分区路径, 挂载的是分区,不是磁盘

6.5 开机自动挂载

sh
echo "/dev/sdb1 /disk2 xfs defaults 0 0" >> /etc/fstab

6.6 查看已挂载的磁盘信息

sh
[root@qjk-console dev]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu May  8 09:57:26 2025
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=d75366e2-4bdc-4f91-9f48-acb0624f4f73 /boot                   xfs     defaults        0 0
UUID=afd0efb0-6d08-426c-8da1-32956484354d swap                    swap    defaults        0 0
/dev/sdb1 /disk2 xfs defaults 0 0
[root@qjk-console dev]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                  16G     0   16G    0% /dev
tmpfs                     16G     0   16G    0% /dev/shm
tmpfs                     16G  9.1M   16G    1% /run
tmpfs                     16G     0   16G    0% /sys/fs/cgroup
/dev/mapper/centos-root  3.7T  1.8G  3.7T    1% /
/dev/sda2                494M  145M  349M   30% /boot
tmpfs                    3.2G     0  3.2G    0% /run/user/0
/dev/sdb1                3.7T   33M  3.7T    1% /disk2