磁盘管理是Linux系统管理的重要组成部分之一。Linux系统的磁盘管理主要包括磁盘分区、文件系统格式化、文件系统挂载等操作。这篇文章将介绍Linux系统磁盘管理的基本知识和操作流程。
一、磁盘分区
磁盘分区是将一个物理硬盘划分成多个逻辑分区,每个分区可以单独存储数据,互相独立,相互隔离,实现系统文件和用户数据的分离。Linux系统使用分区表来记录磁盘分区信息,分为主分区和扩展分区。每个磁盘可以最多有4个主分区,但是只能有一个扩展分区。
1.查看磁盘分区信息
使用fdisk命令可以查看磁盘的分区信息。先输入命令fdisk -l,然后对磁盘分区表进行分析。
[root@localhost ~]# fdisk -l
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 268 2040255 82 Linux swap / Solaris
/dev/sda3 269 5221 39836302+ 83 Linux
/dev/sda是本机上的硬盘设备名称,其中sda1、sda2、sda3表示磁盘分区的名称;start和end表示分区的起始和结束位置;blocks表示分区的大小;id表示分区的类型。
2.分区
对某个磁盘进行分区可以使用fdisk命令。首先选择要对哪个硬盘进行操作,然后输入命令fdisk /dev/sdb。进入fdisk之后,输入命令n创建新分区,选择分区类型(主分区或扩展分区)及分区大小,然后输入命令w保存分区表。
[root@localhost ~]# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-13054, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-13054, default 13054):
Using default value 13054
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
如果要创建扩展分区,需要先创建主分区,再使用e选项将主分区转换为扩展分区。扩展分区内可以创建逻辑分区,逻辑分区最多共计255个。如下所示:
[root@localhost ~]# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-13054, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-13054, default 13054):
Using default value 13054
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 5
Changed system type of partition 1 to 5 (Extended)
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (13054-16383, default 13054):
Using default value 13054
Last cylinder or +size or +sizeM or +sizeK (13054-16383, default 16383):
Using default value 16383
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
3.删除分区
如果需要删除一个磁盘分区,可以使用命令fdisk /dev/sdb,然后输入命令d,在确认删除分区后使用w来保存分区表。
[root@localhost ~]# fdisk /dev/sdb
Command (m for help): d
Partition number (1-4): 1
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
我们可以使用命令fdisk -l来查看分区表发生的变化。
二、文件系统格式化
文件系统格式化是指在磁盘分区的基础上创建文件系统,并对其进行格式化。Linux支持多种文件系统格式,例如ext4、ext3、ext2、reiserfs、xfs、jfs等。其中ext4是Linux下使用最多的文件系统格式。文件系统格式化是一个慢速IO的过程,所以格式化磁盘时需要耐心等待。
1.格式化
我们可以使用mkfs命令来对磁盘分区进行格式化。例如,使用命令mkfs.ext4 /dev/sdb1 将/dev/sdb1格式化为ext4格式。格式化完成后,文件系统会分配给每个文件一些磁盘空间,文件内部的数据也会被物理存储在磁盘上。
[root@localhost ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 10475520 4k blocks and 2621440 inodes
Filesystem UUID: 0f1e6404-2a05-46fc-8465-f1f5dd4b2f97
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Allocating group tables: done
Writing inode tables: done
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: done
2.查看磁盘使用情况
使用命令df –h可以查询磁盘的空间统计情况。
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 38G 8.0G 29G 22% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 8.3M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
tmpfs 1.6G 0 1.6G 0% /run/user/1000
三、文件系统挂载
文件系统挂载是指在应用程序需要读写磁盘的时候,在系统的目录树上挂载一个文件系统。挂载之后可以在此文件系统内正常操作,读取和写入,文件系统的使用如同本地文件系统一样,便于用户管理和维护。在Linux系统中,将某个磁盘设备分区的第一步操作就是挂载这个分区。
1.挂载命令
挂载命令的基本格式为mount [-t 文件系统类型][-o 特殊选项] 设备文件名 挂载目录。例如,使用命令mount -t ext4 /dev/sdb1 /mnt 将/dev/sdb1分区挂载到/mnt目录下。
[root@localhost ~]# mount -t ext4 /dev/sdb1 /mnt
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 38G 8.0G 29G 22% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 8.3M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
tmpfs 1.6G 0 1.6G 0% /run/user/1000
/dev/sdb1 10G 68M 9.4G 1% /mnt
2.配置自动挂载
为了避免每次重启后都要手动挂载磁盘,我们可以在/etc/fstab文件中配置让系统开机自动挂载磁盘。
首先,我们需要获得磁盘的UUID。
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID=”0f1e6404-2a05-46fc-8465-f1f5dd4b2f97″ TYPE=”ext4″
然后,在/etc/fstab文件的末尾添加以下内容。
UUID=0f1e6404-2a05-46fc-8465-f1f5dd4b2f97 /mnt ext4 defaults 0 0
配置完成后,重启系统,此时系统会自动将磁盘分区挂载到指定的目录下。
总结
本篇文章对于Linux系统磁盘管理进行了详细的介绍,其包括了磁盘分区、文件系统格式化、文件系统挂载操作等。在日常的Linux系统管理中,我们需要熟练掌握这些基本操作。掌握Linux系统的磁盘管理技能,对于系统运维和开发人员都是非常重要的。
原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/articles/9670.html