磁盘查看和分区
常见的Linux管理操作和命令行操作
1. du查看文件和目录占用的磁盘空间
du: disk usage 磁盘占用情况
基本语法: du 目录/文件
(功能描述:显示目录下每个子目录的磁盘使用情况)
选项 | 功能 |
---|---|
-h | 以人们较易阅读的GBytes, MBytes, KBytes等格式自行显示; |
-a | 不仅查看子目录大小,还要包括文件 |
-c | 显示所有的文件和子目录大小后,显示总和 |
-s | 只显示总和 |
--max-depth=n | 指定统计子目录的深度为第n层 |
## 查看当前用户主目录占用的磁盘空间大小
[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下占用空间最大的文件
# 先看看根目录下面
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等格式自行显示;
## 查看磁盘使用情况
[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
查看详细的设备挂载情况,显示文件系统信息
## 列出块设备挂载情况
[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就是光盘
[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) |
## 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
可以知道直接访问设备不能看到信息,挂载之后就可以访问。 设置开机自动挂载:
修改/etc/fstab文件
vim /etc/fstab
/dev/cdrom /mnt/cdrom iso9660 defaults 0 0
其中后面两个0: 第一个0表示是否dump(磁盘备份), 第二个0表示是否开机磁盘检查
5. fdisk分区
基本语法: fdisk -l
(功能描述:查看磁盘分区详情)
选项说明: -l
显示所有硬盘的分区列表fdisk 硬盘设备名
(功能描述:对新增硬盘进行分区操作)
警告
该命令必须在root用户下才能使用
[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硬盘,现在需要挂载该硬盘:
[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 为新添加的磁盘分区和格式化
[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的硬盘):
[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分区:
mklabel gpt
分成一个分区:
mkpart prinmary 1 -1
查看分区情况:
(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
退出:
(parted) q
信息: You may need to update /etc/fstab.
6.3 查看4T硬盘分区,并格式化磁盘
[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格式化磁盘:
[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
[root@qjk-console dev]# mkdir /disk2
[root@qjk-console dev]# mount /dev/sdb1 /disk2
挂载分区需要编写完整的分区路径, 挂载的是分区,不是磁盘
6.5 开机自动挂载
echo "/dev/sdb1 /disk2 xfs defaults 0 0" >> /etc/fstab
6.6 查看已挂载的磁盘信息
[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