有很多初用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"
三、测试脚本
查看一个sda2已经挂载到了/mnt/linuxdata中,这是我的物理机挂载好的信息,为了不破坏现有的结构,我做这样的测试: 把sda2挂载到/tmp/linuxdata目录中
我运行了: ./createfstab sda2 /tmp/linuxdata 自动生成sda2挂载到/tmp/linuxdata的配置信息。 通过查看,输出了配置信息: UUID=9205394a-a56e-4f08-b0ec-9cd293743202 /tmp/linuxdata ext4 defaults 0 0 而且还自动创建了目录:/tmp/linuxdata 下面我们来对比一下,生成的结果和fstab中的之前配置好的一不一样:
我们发现除了指定的挂载点不同,其它的一样,说明成功了。 如果要一步到位,就以管理员身份运行: sudo -i ./createfstab sda2 /tmp/linuxdata >> /etc/fstab 注意:请注意不要写成“>”,如果写成“>”后果很严重,会把Linux系统搞坏。
警告 本脚本仅供学习使用,不一定适用每个Linux版本,所以请不要用在正式部署的物理机上使用,目前不清楚是否有BUG。当然,如果你的Linux是用来学习的,可以尝试。
相关主题 |