Linux下磁盘分区,格式化以及挂载
测试环境:VMware Workstation / centos7
1、磁盘分区
(1)易于管理和使用:
比如说我们把磁盘分了sda1、sda2、sda3、sda4盘,我们假设sda1盘为系统盘,其他的比如说游戏、办公、软件盘,这样我们要重新分哪个区就直接在对应的盘分就可以了,不需要整块磁盘进行分区。根据用途我们也能较快的去使用相应的磁盘。
(2)有利于数据的安全:
通过分区可以降低数据损失的风险。出现硬盘坏道、错误操作、重装系统都有可能造成数据损失,如果分区了,那么我们就可以将损失最小化。
(3)节约寻找文件的时间:
这个我觉得跟第一条比较像,但是这里所说的寻找文件的时间,是指电脑搜索文件的时间。分区以后,电脑搜索文件时只需要在相对应的分区搜索就可以了,没必要进行全盘搜索。大大节省了寻找文件的时间。
一个扇区是512字节,其中有64个字节存储的是分区表,一条分区信息占16个字节,因此磁盘最多只能分四个分区,要想有多个分区怎么办?这时候就有了扩展分区。
扩展分区可以被继续划分为多个逻辑分区,逻辑分区是可以进行格式化的。扩展分区把逻辑分区的分区信息在扩展分区中找了一个位置给存起来。假如说p4扩展分区划分了三个逻辑分区那么第1个逻辑分区命名为sda5、第2个为sda6、第3个sda7,以此类推。一个磁盘被分为四个分区,第四个分区被设置为扩展分区,第一个逻辑分区为sda5。但是当整个磁盘被分为3个分区的时候,我们把扩展分区划分的第1个逻辑分区依然命名为sda5,而不是其它的。总结一下,就是不论磁盘有几个主分区,第一个逻辑分区一定是从sda5开始。
Linux系统有一个理念:“一切皆文件”,所以计算机的硬件在linux中也是以“文件”的形式存在于/dev目录中。
比如,光驱对应的文件是/dev/cdrom,CPU对应的文件是/dev/cpu。而硬盘对应的是/dev/sd*。第一块硬盘是/dev/sda,第二块磁盘是/dev/sdb。
输入命令#fdisk /dev/sdb
输入p 查看当前硬盘分区,目前没有分区。
新建分区
查看新建扇区,以上新建了两个主分区,大小都是500M
修改分区类型
注意:sdb1:存放的是与系统相关的文件
sdb2:虚拟内存交换分区
start、end表示分区开始的扇区位置和结束的扇区位置。
blocks:表示块的信息,一个块里面有多个扇区。
Id:表示磁盘类型编号
system:表示Linux系统分区的一个分区信息。
此时不要着急,我们一定要记住要保存,在命令行输入w保存分区信息。我们通过w保存并退出后,使用fdisk -l 可以查看到磁盘的分区信息。
但是当你在格式化的时候,有可能找不到这个分区。这是因为Linux没有把分区信息读到内核来,我们需要输入partprobe这个命令,来使我们内核重读一下我们的分区信息。
2、磁盘格式化
格式化:指将分区格式化成不同的文件系统。
文件系统:指操作系统用于明确存储设备或分区上的文件的方法和数据结构:即在存储设备上组织文件的方法。
mkfs -t ext4 /dev/sdb1或 mkfs.ext4 /dev/sdb1 两者命令皆可
Linux下的文件类型有ext2、ext3、ext4、xfs等等,我们可以使用命令:mkfs. 然后用按TAB键来查看都有哪些文件类型。
对刚才创建的分区进行格式化
当done都出现完毕后,意味着格式化已经进行完毕。
格式化完毕后我们使用命令:ll 来查看我们格式化完毕后的分区的文件类型信息。
信息看出来sdb1为一个块设备文件。8表示主设备号,17表示的为从设备号。
3、磁盘挂载
挂载点目录:我们将磁盘切到根目录, media 和 mnt 这两个目录被叫做挂载点目录。除此之外,我们也可以自己创建一个目录作为一个挂载点目录,
临时挂载:
将指定的一个目录作为挂载点目录时,如果挂载点的目录有文件,那么文件会被隐藏。因此当我们需要挂载目录时,最好新建一个空文件夹来作为挂在点目录。(重启后失效)
在根下创建一个 software 目录用于测试
挂载sdb1,使用命令:mount /dev/sdb1 /software 意思就是说将 /dev/sdb1 挂载到 software 目录中。
将挂载的 sdb1 给卸载掉。注意卸载时一定要退出目录,不然无法进行卸载。卸载的命令:umount /dev/sdb1 或者是 umount /software
查看到当前系统上所有磁盘的挂载信息,使用 mount 或 df -h 命令,但mount 读起来较费劲,建议使用命令df -h这更易于我们对磁盘的信息的了解。包括文件的大小,已经使用的分区大小,总共可用分区的大小,使用率,以及挂载的位置。
永久挂载:
使用永久挂载,就意味着它开机会自动挂载(编辑 /etc/fstab 文件)
命令:blkid:查看对应分区的UUID(编号)。UUID唯一标识每一个分区,防止错误的挂载。除此之外,还会显示分区的类型。(建议先复制一下sdb1的UUID,一会儿会用到)
使用vim编辑 /etc/fstab 在命令行直接输入vim /etc/fstab 就可以编辑,实现开机自动挂载。
在将光标移到UUID行,在命令模式下按o键进入插入模式,同时换行。将前面中复制好的 sdb1 的UUID编号粘贴进来。/software 挂载点目录,ext4文件系统类型,第一个0表示不备份,第二个0表示不检查。注意格式一定要正确,可以不用对齐,最好的判断依据是依照颜色。
写完之后,你使用mount命令,是看不到 /software 挂载信息的,只有开机时才会读取那个文件。然后reboot。由于内核还没有读取这个命令,使用mount -a 这个命令来让内核读取这个文件。然后用mount | grep /software来过滤信息,查看是否挂上。(如果失败了不要着急,很有可能你没有重新进这个区哦)
如果挂载完查不到分区使用partprobe命令重新载入分区:
使用lsblk命令查看当前磁盘的分区状态
当/software目录被挂载后,该目录下多出了一个目录lost+found。
lost+found:顾名思义,丢失然后找到。它是一个特殊的目录,用来存放文件系统错误导致文件丢失的目录,因此我们的一些数据是可以通过它来找到的。这个目录是在分区的根目录上,就是我们挂载的分区。但这不是每个文件系统都有的目录,ext2/3/4就有这个目录,有些就没有这个目录。