46 lines
1.2 KiB
Bash
46 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
#Only used by sysclone
|
|
|
|
#if the /etc/systemimager/byid_real_map.conf exist,
|
|
#the device name used in fstab and grub are in "by-id" style
|
|
#use the by-id name on target node to replace the name on the goden client
|
|
|
|
if [ ! -e /etc/systemimager/byid_real_map.conf ];then
|
|
exit 0
|
|
fi
|
|
|
|
sed -e 's/-part[0-9]\+//g' -e 's/[0-9]\+$//' /etc/systemimager/byid_real_map.conf | uniq |
|
|
while read str_line
|
|
do
|
|
str_old_dev="${str_line%%:*}"
|
|
str_real="${str_line##*:}"
|
|
str_real="${str_line##*/}"
|
|
# str_dev_prefix=`basename $str_old_dev | awk -F'-' '{print $1}'`
|
|
|
|
#find out the new by-id name
|
|
str_new_dev=`ls -l --time-style=locale /dev/disk/by-id/ | grep -E "$str_real\$" | awk '{print $9}'|head -n 1`
|
|
if [ -z "$str_new_dev" ];then
|
|
continue
|
|
fi
|
|
str_new_dev="/dev/disk/by-id/${str_new_dev}"
|
|
|
|
for str_file_name in \
|
|
/boot/efi/efi/SuSE/elilo.conf \
|
|
/boot/efi/EFI/redhat/grub.conf \
|
|
/boot/grub/menu.lst \
|
|
/boot/grub/device.map \
|
|
/etc/elilo.conf \
|
|
/etc/fstab \
|
|
/etc/grub.conf \
|
|
/etc/lilo.conf \
|
|
/etc/yaboot.conf
|
|
do
|
|
if [ -f $str_file_name ];then
|
|
sed -i "s:$str_old_dev:$str_new_dev:g" "$str_file_name"
|
|
fi
|
|
done
|
|
done
|
|
|
|
exit 0
|