云网牛站
所在位置:首页 > Linux教程 > 在Linux中自动生成fstab的挂载信息脚本及使用方法

在Linux中自动生成fstab的挂载信息脚本及使用方法

2018-08-31 11:02:14作者:myccloves稿源:deepin社区

有很多初用Linux系统的网友在挂载上都不会弄,所以有人写脚本来自动生成挂载信息,并且测试了脚本,下面提供实现的脚本供你学习参考。(注:应用脚本有风险,请在有识别的能力及应对的能力前提下采用。)

 

一、需求

我需要把一些硬盘分区,挂载到指定的目录,所以我需要修改/etc/fstab文件。此文件的一般格式如下:

UUID=... 挂载点  文件系统类型  defaults 0 0

如果我想把/dev/sda2挂载到/mnt/linuxdata,我需要先查UUID,记录下来,再创建目录/mnt/linuxdata,再编写配置文件很麻烦。

如果能一下子创建目录,生成配置文件需要的信息就好了,所以我的想法是:

命令:sda2  /mnt/linuxdata

这样就完成了。

 

二、编写脚本,如下

#!/bin/bash

#快速生成fstab挂载信息

if [ "$#"   -ne  2 ]; then

echo "Usage: createfstab sda1 /media/abc"

exit 1

fi

uuid=$(blkid | grep $1 | grep -o  " UUID=.[0-9a-zA-Z-]\\+" | sed 's/\"//g' )

type=$(blkid | grep $1 | grep -o  " TYPE=\"[0-9a-z]*"  | sed 's/TYPE=\"//g')

if [ -z "$uuid" -o -z "$type" ]; then

echo "没有找到设备或文件系统类型"

exit 1

fi

uuid=$(echo $uuid | sed 's/^ //g')

type=$(echo $type | sed 's/^ //g')

if [ ! -d "$2" ]; then

mkdir -p $2

if [ "$?" -ne 0 ]; then

echo "创建挂载点失败"

exit 1

fi

fi

echo "$uuid $2 $type defaults 0 0"

 

三、测试脚本

在Linux中自动生成fstab的挂载信息脚本及使用方法

查看一个sda2已经挂载到了/mnt/linuxdata中,这是我的物理机挂载好的信息,为了不破坏现有的结构,我做这样的测试:

把sda2挂载到/tmp/linuxdata目录中

在Linux中自动生成fstab的挂载信息脚本及使用方法

我运行了:

./createfstab sda2 /tmp/linuxdata

自动生成sda2挂载到/tmp/linuxdata的配置信息。

通过查看,输出了配置信息:

UUID=9205394a-a56e-4f08-b0ec-9cd293743202 /tmp/linuxdata ext4 defaults 0 0

而且还自动创建了目录:/tmp/linuxdata

下面我们来对比一下,生成的结果和fstab中的之前配置好的一不一样:

在Linux中自动生成fstab的挂载信息脚本及使用方法

我们发现除了指定的挂载点不同,其它的一样,说明成功了。

如果要一步到位,就以管理员身份运行:

sudo -i

./createfstab sda2 /tmp/linuxdata >> /etc/fstab

注意:请注意不要写成“>”,如果写成“>”后果很严重,会把Linux系统搞坏。

 

警告

本脚本仅供学习使用,不一定适用每个Linux版本,所以请不要用在正式部署的物理机上使用,目前不清楚是否有BUG。当然,如果你的Linux是用来学习的,可以尝试。

 

相关主题

在阿里云服务器CentOS 7系统上挂载数据盘

精选文章
热门文章