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 文件。

更多教程 HTML5 教程 CSS3 教程 JavaScript 教程 JQuery 教程 React.js 教程 Node.js 教程 Koa2 教程 Python 教程 Linux 教程