最近要给小伙伴们写几篇文章,关于《linux下误删除文件之后该如何恢复》。对于没有进程占用的文件想要进行数据恢复,不同的文件系统格式需要使用不同的工具,比如:ext4、xfs等。我找遍了我所有的虚拟机服务器,都没找到ext4文件格式的。因为ext4毕竟还是非常常用的文件系统格式,我写东西就希望能够系统一点,所以本文先介绍下:如何为linux操作系统挂载新硬盘,并将新硬盘格式化为ext4格式。
一个硬盘可以通过工具分成多个分区,但在linux运维中通常一个新硬盘就一个分区即可。硬盘中的每个分区需要与linux操作系统中的一个文件目录建立挂载关系。后续针对这个目录下的文件读写操作,实际就是针对该磁盘进行文件读写操作。
对于这一步安装硬盘的操作,如果是真实的服务器,将硬盘安装到服务器的机架上即可。 对于虚拟机我们需要新建硬盘,规划硬盘空间。所以下面的操作只针对虚拟机,我使用的是virtualbox虚拟机,其他的虚拟机其实差不多。虚拟机设置->存储->控制器SATA->添加新的硬盘->创建新的虚拟盘。
然后根据提示选择虚拟盘的格式、大小、宿主机上的存储路径即可。注意虚拟盘的格式是虚拟机的文件存储格式,与linux操作系统的文件格式无关,如果不会选就默认即可。创建完成之后,会在控制器SATA下面多出一个新的硬盘。
下面我们来将硬盘挂载到指定的目录,这一步开始就不区分是虚拟机还是服务器了,都是一样的操作。我们通过命令lsblk -f
查看一下操作系统现在能够识别的硬盘盘符。我们能够看到sda盘符的硬盘是安装操作系统的时候的硬盘,包含swap、boot分区等。
注意红色的部分sdb盘符的硬盘就是我们新安装的硬盘,下面我们来针对sdb硬盘进行分区。磁盘分区的命令是fdisk /dev/sdb
,sdb是我们上文提到的新分区盘符。按照如图所示操作完成之后,新的硬盘就完成了分区操作,一个硬盘只做了一个分区。通过lsblk -f
再次查看硬盘分区,我们看到sdb硬盘下多出一个分区sdb1,证明我们的分区操作正确的完成了。
唯一的区别是:旧的硬盘分区都有一个UUID和挂载目录MOUNTPOINT,而我们新建的硬盘分区是没有的。就需要我们下面来完成硬盘分区的格式化与目录挂载。
下面我们来针对分区进行格式化,格式化的操作比较简单,执行mkfs -t ext4 /dev/sdb1
命令即可,其中sdb1是我们新建的分区,ext4是linux操作系统支持的一种硬盘存储格式。
[root ~]# mkdir -p /data; #新建一个目录用于挂载新硬盘 [root ~]# mount /dev/sdb1 /data; #挂载新硬盘到目录 [root ~]# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sdb └─sdb1 ext4 0f75f926-222b-4385-84ac-8c69c613aa0a /data
格式化完成之后,我们需要将已经格式化之后的分区,挂载到linux操作系统的一个目录下面。所有操作完成之后,我们再用lsblk -f
查看分区,可以看到我们新添加了硬盘sdb,新建了分区sdb1,完成sdb1分区格式化之后sdb1分区有了自己的UUID,格式化的存储格式是ext4,完成了挂载操作之后有了MOUNTPOINT。以后该操作系统下针对/data
目录的读写操作,其实都是针对我们刚刚添加的硬盘sdb进行的。
上面完成的挂载关系,在操作系统重启之后就失效了。如果希望下次操作系统重启的时候自动挂载,需要在/etc/fstab
文件中添加下面的一行记录实现自动挂载。
/dev/sdb1 /data ext4 defaults 0 0
执行如下命令会重新加载配置文件,并使其生效:
mount -a