mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 11:22:27 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			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
 |