Linux 磁盘管理

磁盘

我们日常的很多操作都离不开磁盘,磁盘的管理,也是 Linux 应用的一个大板块。


容量

df -h 磁盘容量的使用状况和挂载盘符。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/simfs       12G  4.6G  7.5G  38% /
devtmpfs        128M     0  128M   0% /dev
tmpfs           128M     0  128M   0% /dev/shm
tmpfs           128M   13M  116M  11% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           128M     0  128M   0% /sys/fs/cgroup
none            128M     0  128M   0% /run/shm

du -h file 查看指定文件或目录的大小,du -a path 可以递归查看目录和隐藏文件。

$ du -h file
237k file

fdisk

fdisk 命令可以查看磁盘的一些情况和对磁盘进行分区操作。

fdisk -l 查看磁盘信息。

$ fdisk -l
/dev/sda1
/dev/sda2
/dev/sda3
...
/dev/sdb

返回的这些信息中 sdasdb 分别代表了两块硬盘设备。其中带编号的 sda 1/2/3 说明该设备已经有多个分区,而不带编号的 /dev/sdb 是未分区的存储设备。每一个设备可以有多个分区,1-4 为主分区,5+ 是逻辑分区。


分区

下面,我们用 fdisk 命令对未分区的 /dev/sdb 做分区操作,

$ fdisk /dev/sdb

运行完成上面的命令会进入分区系统,之后需要通过若干个子命令进行分区操作,在这操作的过程中,每一个步骤系统都会有详情的提示,我们输入第一个命令 "n" 进入分区。

  • n - 按下 “n” 之后会进入分区状态,下一步要填写分区的类型,有三个类型可以选择 p 主分区、e 扩展分区、l 逻辑分区,我们选择 “p”。
  • p - 选择 “p 主分区” 之后,需要填写分区的编号 1-4。
  • 1 - 完成编号的填写就剩最后一个步骤了,那就是分区的大小。
  • +1024M 我们选择1G的大小。

操作完上面的步骤,就完成了一次分区操作,我们可以按 p 查看当前磁盘的分区状态。

如果磁盘还剩空间,那么接着按 n 命令,重复上面的步骤。

最后如果所有的分区都完成了,按 w 可以保存,如果对分区的结果不满意,那么按 q 可以退出分区操作。


格式化分区

分成完成之后,需要做一次格式操作,使用 mke2fs 工具。

mke2fs -t ext4 /dev/sda5 // -t 指定文件系统类型 | ext4 是 Linux 流行的文件系统

挂载

挂载是个有意思的事情,刚接触 Linux 不久的同学们经常们经常会有困惑,为什么插了 U 盘在系统上没显示,那是因为没有挂载。挂载就是让设备跟某个目录关联,然后通过这个目录可以进入、读取 ... 设备的内容。我们刚刚分区出来的 空磁盘,也需要做挂载操作。

挂载使用的命令是 mount,如果不加任何参数使用 mount ,会返回当前系统已经完成挂载的设备信息。

$ mount
/dev/simfs on / type simfs (rw,relatime,usrquota,grpquota)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,mode=755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
...

我们做个实例,挂载我们刚刚分区出来的一个主分区 /dev/sdb1

mkdir ~/newpath
mount /dev/sdb1 ~/newpath

挂载之后 ~/newpath 关联的就是 /dev/sdb1 设备。


/etc/fstab

通过 mount 命令挂载的磁盘,只是临时的,当系统重启之后就会消失,如果想要实现永久的挂载,那么要把挂载信息配置到 /etc/fstab 文件里面。格式如下:

UUID=c61117ca-9176-4d0b-be4d-1b0f434359a7  /root/f  ext4  defaults  0  0

/*
 1. UUID
 2. 挂载点
 3. 文件系统
*/

UUID 的获取可以通过这个命令 blkid /dev/sdb1

配置成功之后,运行 mount -a 加载 /etc/fstab 文件。

Linux 教程 Linux 用户 Linux 基础命令 Linux 文件权限 Linux 文件查找 Linux 文件归档 Linux vim Linux 管道和重定向 Linux 进程 Linux 运行状态 Linux 服务管理 Linux 定时任务 Linux 磁盘 Linux LVM Linux 网络配置 Linux 软件管理 Linux iptables Linux SSH Linux curl