Earthman 发表于 2014-2-3 05:20:10

cubieboard使用Cubian系统,开机挂载SATA硬盘及USB盘脚本

本帖最后由 Earthman 于 2014-2-3 05:23 编辑

自编,无私奉献
请安装ntfsprogs,依赖udevil

教本可以放到/etc/rc.local开机执行


要是谁比较闲,可以把这个教本转成debian专用导启动脚本,放到/etc/init.d/下面用#!/bin/sh

# ls /dev/disk/by-label
# mount --guess-fstype /dev/sda1

devices=$(blkid -o device)
fstab_devices=$(awk '$1 ~ /^\/dev\// {print $1}' /etc/fstab)
fstab_uuids=$(awk 'BEGIN{FS="[\t= ]"} {if($1~/^UUID/) {print $2}}' /etc/fstab | uniq)
fatab_labels=$(awk 'BEGIN{FS="[\t= ]"} {if($1~/^LABEL/) {print $2}}' /etc/fstab | uniq)
fstab_all_devices=
dev_mount=

convert_uuid_label_to_device(){
    for var in $fstab_uuids
    do
      fstab_all_devices="$fstab_all_devices $(blkid -U $var)"
    done

    for var in $fstab_labels
    do
      fstab_all_devices="$fstab_all_devices $(blkid -L $var)"
    done

    fstab_all_devices="$fstab_all_devices $fstab_devices"

    fstab_all_devices=$(echo $fstab_all_devices|sed 's# #\n#g'|sort -u)

}

devices_need_mount(){
    for vara in $devices
    do
      local is_break=false
      for varb in $fstab_all_devices
      do
            test "$vara" = "$varb" && is_break=true && break
      done
      
      test "$is_break" = "false" && dev_mount="$dev_mount $vara"
   
    done
}

mount_devices(){
    for var in $dev_mount
    do
      unset LABEL UUID UUID_SUB TYPE
      for env in $(blkid -o export $var)
      do
            export $env
      done

      test -z "$LABEL" && export LABEL=$(echo $var | sed 's#\/dev\/##')
#      rmdir --ignore-fail-on-non-empty /media/$LABEL 1&>2 && mkdir /media/$LABEL
      /usr/bin/udevil mount -t $TYPE $var /media/$LABEL
    done
}

convert_uuid_label_to_device
devices_need_mount
mount_devices
页: [1]
查看完整版本: cubieboard使用Cubian系统,开机挂载SATA硬盘及USB盘脚本