modified: dialog/di_dialog.py modified: interface/ri_oper.py modified: operation/configure_fstab.sh
124 lines
2.6 KiB
Bash
Executable File
124 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# DESCRIPTION: configure fstab
|
|
# this script will modify $TARGT/etc/fstab,
|
|
# append the mountpoint to $TARGET/etc/fstab.
|
|
# mountpoint, swap use by-id, other device use by-uuid.
|
|
# if can't get by-id or by-uuid use device name.
|
|
#
|
|
# SCRIPT NAME: configure_fstab.sh
|
|
#
|
|
# Usage: echo "/dev/hda2 /home ext3"|./configure_fstab.sh
|
|
#
|
|
# Input: stdin
|
|
# 1. partition
|
|
# 2. mountpoint
|
|
# 3. filesystem type
|
|
# below input is optional, if not set, we configure default,
|
|
# more about these argument read man fstab.
|
|
# 4. fs_mntops
|
|
# 5. fs_freq
|
|
# 6. fs_passno
|
|
#
|
|
# Output:
|
|
# NULL
|
|
# Returne value:
|
|
# 1 argument error
|
|
# 2 fstab doesn't exist
|
|
#
|
|
# AUTHOR: Qin Bo
|
|
#
|
|
# EMAIL: bqin@linx-info.com
|
|
#
|
|
# DATE: 2010-08-12
|
|
#
|
|
# HISTORY:
|
|
# REVISOR DATE MODIFICATION
|
|
# Qin Bo 2010-08-12 create
|
|
#
|
|
#
|
|
#
|
|
|
|
source ./functions
|
|
|
|
configure_fstab ()
|
|
{
|
|
local device="$1"
|
|
local mountpoint="$2"
|
|
local fs_type="$3"
|
|
local fs_mntops="$4"
|
|
local fs_freq="$5"
|
|
local fs_passno="$6"
|
|
# store uuid or by-id
|
|
local devname=""
|
|
|
|
if [ $# -lt 3 ];then
|
|
err "$FUNCNAME function argument error, it need 3 arguments at least !"
|
|
return 1
|
|
fi
|
|
|
|
# get partition's UUID, if partition not exist,
|
|
# or couldn't get partition information, set $devname as default
|
|
by_uuid=$(get_disk_sym $device "by-uuid")
|
|
if [ -n "$by_uuid" ];then
|
|
devname="UUID=$(echo $by_uuid|sed 's/.*\///')"
|
|
else
|
|
devname="$device"
|
|
fi
|
|
|
|
# configure fstab options here
|
|
# fs_mntops, fs_freq, fs_passno has given, we use function argument,
|
|
# or we set default configuration, set fs_freq 0, because our OS haven't
|
|
# dump utility, set root device of fs_passno 1. root device must first check.
|
|
# other device set 0.
|
|
case $fs_type in
|
|
ext2|ext3|reiserfs)
|
|
[ -z "$fs_mntops" ] && fs_mntops="acl"
|
|
;;
|
|
swap)
|
|
[ -z "$fs_mntops" ] && fs_mntops="defaults"
|
|
;;
|
|
*)
|
|
[ -z "$fs_mntops" ] && fs_mntops="defaults"
|
|
;;
|
|
esac
|
|
|
|
[ -z "$fs_freq" ] && fs_freq=0
|
|
|
|
if [ "$mountpoint" == "/" ];then
|
|
[ -z "$fs_passno" ] && fs_passno=1
|
|
else
|
|
[ -z "$fs_passno" ] && fs_passno=0
|
|
fi
|
|
|
|
info "$devname $mountpoint $fs_type $fs_mntops $fs_freq $fs_passno"
|
|
printf "%-60s %-10s %-10s %-25s %-1s %-1s\n" $devname $mountpoint $fs_type $fs_mntops $fs_freq $fs_passno >>"$TARGET/etc/fstab"
|
|
}
|
|
|
|
|
|
main ()
|
|
{
|
|
local line
|
|
|
|
if [ -e "$TARGET/etc/fstab" ];then
|
|
sed -i '/^#devpts/ s/#//
|
|
/^#sysfs/ s/#//
|
|
/^#shm/ s/#shm /tmpfs/ ' "$TARGET/etc/fstab"
|
|
|
|
info "configure fstab"
|
|
while read line;do
|
|
if [ -n "$line" ];then
|
|
configure_fstab $line
|
|
erv
|
|
fi
|
|
done
|
|
info "configure fstab success"
|
|
else
|
|
err "$TARGET/etc/fstab doesn't exist"
|
|
exit 2
|
|
fi
|
|
}
|
|
|
|
main "$@"
|
|
|