Advertisement
Guest User

Untitled

a guest
Aug 21st, 2014
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.05 KB | None | 0 0
  1. + set -v
  2.  
  3. # Install Grub from the choosen Linux partition to the choosen hard disk
  4. # 1 parametre = Selected hard disk
  5. # 2 parametre = Selected partition
  6. # While it is being run user is shown the hard disks
  7. # and it is asked to order them
  8. function rtux_Grub_Install () {
  9.  
  10. local EXIT_VALUE=1 # Error by default
  11. local SELECTED_HARD_DISK="$1"
  12. local SELECTED_PARTITION="$2"
  13.  
  14. local DETECTED_HARD_DISKS=$(rtux_Get_System_HardDisks);
  15.  
  16. local SELECTED_HARD_DISK_DEV="/dev/${SELECTED_HARD_DISK}"
  17. local n_partition=${SELECTED_PARTITION}
  18.  
  19. local TMP_MNT_PARTITION=${RESCATUX_ROOT_MNT}/${n_partition}
  20. local TMP_DEV_PARTITION=/dev/${n_partition}
  21. mkdir --parents ${TMP_MNT_PARTITION}
  22. if $(mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  23. then
  24. mount -o bind /dev ${TMP_MNT_PARTITION}/dev
  25. mount -o bind /proc ${TMP_MNT_PARTITION}/proc
  26. mount -o bind /sys ${TMP_MNT_PARTITION}/sys
  27.  
  28. if [[ -e ${TMP_MNT_PARTITION}${LINUX_OS_DETECTOR} ]] ; then
  29. rtux_File_Reordered_Device_Map \
  30. > ${TMP_MNT_PARTITION}/${DEVICE_MAP_RESCATUX_STR}
  31.  
  32.  
  33. # TODO: Improve with a cat command ended with a EOF mark
  34. local TMP_SCRIPT="/tmp/$$.sh"
  35. local TMP_MNT_PARTITION_SCRIPT="${TMP_MNT_PARTITION}${TMP_SCRIPT}"
  36.  
  37. rtux_File_Chroot_Script_Device_Map \
  38. "if ${GRUB_INSTALL_BINARY}.unsupported --version ; then " \
  39. "${GRUB_INSTALL_BINARY}.unsupported ${SELECTED_HARD_DISK_DEV} ;"\
  40. " elif ${GRUB_INSTALL_BINARY} --version ; then " \
  41. "${GRUB_INSTALL_BINARY} ${SELECTED_HARD_DISK_DEV} ;" \
  42. " else " \
  43. "grub2-install ${SELECTED_HARD_DISK_DEV} ;" \
  44. "fi" \
  45. > ${TMP_MNT_PARTITION}${TMP_SCRIPT}
  46.  
  47. chmod +x ${TMP_MNT_PARTITION_SCRIPT}
  48.  
  49. # TODO: Let the user use other than now hard-coded /bin/bash
  50. chroot ${TMP_MNT_PARTITION} /bin/bash ${TMP_SCRIPT}
  51. EXIT_VALUE=$?
  52. mount -t auto -o remount,rw ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} # Workaround
  53. rm ${TMP_MNT_PARTITION_SCRIPT}
  54.  
  55. fi # Linux detector was found
  56. umount ${TMP_MNT_PARTITION}/sys
  57. umount ${TMP_MNT_PARTITION}/proc
  58. umount ${TMP_MNT_PARTITION}/dev
  59. umount ${TMP_MNT_PARTITION};
  60. fi # Partition was mounted ok
  61.  
  62. return ${EXIT_VALUE}
  63.  
  64. } # function rtux_Grub_Install ()
  65.  
  66. # TODO: Program check runtime (Maybe to be stolen from bootinfoscript)
  67.  
  68. # MAIN PROGRAM
  69.  
  70. GRUB_INSTALLED_OK_STR="Grub was installed OK! :)"
  71. + GRUB_INSTALLED_OK_STR='Grub was installed OK! :)'
  72. GRUB_NOT_INSTALLED_STR="Grub was not installed. Something went wrong! :("
  73. + GRUB_NOT_INSTALLED_STR='Grub was not installed. Something went wrong! :('
  74. WHICH_HARD_DISK_INSTALL_GRUB_STR="Which hard disk to install Grub on?"
  75. + WHICH_HARD_DISK_INSTALL_GRUB_STR='Which hard disk to install Grub on?'
  76.  
  77. SELECTED_PARTITION=$(rtux_Choose_Linux_partition);
  78. rtux_Choose_Linux_partition)
  79. rtux_Choose_Linux_partition
  80. ++ rtux_Choose_Linux_partition
  81. rtux_Get_Linux_Os_Partitions)
  82. rtux_Get_Linux_Os_Partitions
  83. +++ rtux_Get_Linux_Os_Partitions
  84. rtux_Get_System_Partitions)
  85. rtux_Get_System_Partitions
  86. ++++ rtux_Get_System_Partitions
  87. ++++ awk '{ if ( ( NR>2 ) && ( $4 ~ "[0-9]$" ) ) {print $4} }' /proc/partitions
  88. +++ local 'TARGET_PARTITIONS=sda1
  89. sda2
  90. loop0
  91. loop1'
  92. +++ local SBIN_GRUB_PARTITIONS=
  93. +++ for n_partition in '${TARGET_PARTITIONS}'
  94. +++ local TMP_MNT_PARTITION=/mnt/rescatux/sda1
  95. +++ local TMP_DEV_PARTITION=/dev/sda1
  96. +++ mkdir --parents /mnt/rescatux/sda1
  97. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  98. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  99. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null
  100. ++++ mount -t auto /dev/sda1 /mnt/rescatux/sda1
  101. +++ [[ -e /mnt/rescatux/sda1/etc/issue ]]
  102. +++ umount /mnt/rescatux/sda1
  103. +++ for n_partition in '${TARGET_PARTITIONS}'
  104. +++ local TMP_MNT_PARTITION=/mnt/rescatux/sda2
  105. +++ local TMP_DEV_PARTITION=/dev/sda2
  106. +++ mkdir --parents /mnt/rescatux/sda2
  107. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  108. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  109. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null
  110. ++++ mount -t auto /dev/sda2 /mnt/rescatux/sda2
  111. +++ [[ -e /mnt/rescatux/sda2/etc/issue ]]
  112. +++ umount /mnt/rescatux/sda2
  113. +++ for n_partition in '${TARGET_PARTITIONS}'
  114. +++ local TMP_MNT_PARTITION=/mnt/rescatux/loop0
  115. +++ local TMP_DEV_PARTITION=/dev/loop0
  116. +++ mkdir --parents /mnt/rescatux/loop0
  117. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  118. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  119. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null
  120. ++++ mount -t auto /dev/loop0 /mnt/rescatux/loop0
  121. +++ [[ -e /mnt/rescatux/loop0/etc/issue ]]
  122. +++ umount /mnt/rescatux/loop0
  123. +++ for n_partition in '${TARGET_PARTITIONS}'
  124. +++ local TMP_MNT_PARTITION=/mnt/rescatux/loop1
  125. +++ local TMP_DEV_PARTITION=/dev/loop1
  126. +++ mkdir --parents /mnt/rescatux/loop1
  127. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  128. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  129. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null
  130. ++++ mount -t auto /dev/loop1 /mnt/rescatux/loop1
  131. +++ [[ -e /mnt/rescatux/loop1/etc/issue ]]
  132. +++ SBIN_GRUB_PARTITIONS=' loop1'
  133. +++ umount /mnt/rescatux/loop1
  134. +++ echo ' loop1'
  135. ++ rtux_Abstract_Choose_Partition loop1
  136. ++ local n=0
  137. ++ local LIST_VALUES=
  138. ++ local DESC_VALUES=
  139. ++ local SBIN_GRUB_PARTITIONS=loop1
  140. ++ for n_partition in '${SBIN_GRUB_PARTITIONS}'
  141. rtux_Get_Etc_Issue_Content ${n_partition}
  142. +++ rtux_Get_Etc_Issue_Content loop1
  143. +++ local PARTITION_TO_MOUNT=loop1
  144. +++ local n_partition=loop1
  145. +++ local TMP_MNT_PARTITION=/mnt/rescatux/loop1
  146. +++ local TMP_DEV_PARTITION=/dev/loop1
  147. +++ mkdir --parents /mnt/rescatux/loop1
  148. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  149. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  150. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null
  151. ++++ mount -t auto /dev/loop1 /mnt/rescatux/loop1
  152. +++ [[ -e /mnt/rescatux/loop1/etc/issue ]]
  153. head -n 1 ${TMP_MNT_PARTITION}${ETC_ISSUE_PATH} | sed -e 's/\\. //g' -e 's/\\.//g' -e 's/^[ \t]*//' -e 's/\ /-/g' -e 's/\ \ /-/g' -e 's/\n/-/g')
  154. head -n 1 ${TMP_MNT_PARTITION}${ETC_ISSUE_PATH} | sed -e 's/\\. //g' -e 's/\\.//g' -e 's/^[ \t]*//' -e 's/\ /-/g' -e 's/\ \ /-/g' -e 's/\n/-/g')
  155. head -n 1 ${TMP_MNT_PARTITION}${ETC_ISSUE_PATH} | sed -e 's/\\. //g' -e 's/\\.//g' -e 's/^[ \t]*//' -e 's/\ /-/g' -e 's/\ \ /-/g' -e 's/\n/-/g'
  156. ++++ head -n 1 /mnt/rescatux/loop1/etc/issue
  157. ++++ sed -e 's/\\. //g' -e 's/\\.//g' -e 's/^[ \t]*//' -e 's/\ /-/g' -e 's/\ \ /-/g' -e 's/\n/-/g'
  158. +++ echo Debian-GNU/Linux-6.0-
  159. +++ umount /mnt/rescatux/loop1
  160. ++ local issue_value=Debian-GNU/Linux-6.0-
  161. echo $issue_value | sed 's/\ /\-/')
  162. echo $issue_value | sed 's/\ /\-/'
  163. +++ echo Debian-GNU/Linux-6.0-
  164. +++ sed 's/\ /\-/'
  165. ++ issue_value=Debian-GNU/Linux-6.0-
  166. echo $issue_value | sed 's/ /\-/')
  167. echo $issue_value | sed 's/ /\-/'
  168. +++ echo Debian-GNU/Linux-6.0-
  169. +++ sed 's/ /\-/'
  170. ++ issue_value=Debian-GNU/Linux-6.0-
  171. ++ [[ n -eq 0 ]]
  172. ++ LIST_VALUES='TRUE loop1 Debian-GNU/Linux-6.0-'
  173. ++ let n=n+1
  174. zenity ${ZENITY_COMMON_OPTIONS} --list --text "${WHICH_PARTITION_STR}" --radiolist --column "${SELECT_STR}" --column "${PARTITION_STR}" --column "${DESCRIPTION_STR}" ${LIST_VALUES})"
  175. zenity ${ZENITY_COMMON_OPTIONS} --list --text "${WHICH_PARTITION_STR}" --radiolist --column "${SELECT_STR}" --column "${PARTITION_STR}" --column "${DESCRIPTION_STR}" ${LIST_VALUES})
  176. zenity ${ZENITY_COMMON_OPTIONS} --list --text "${WHICH_PARTITION_STR}" --radiolist --column "${SELECT_STR}" --column "${PARTITION_STR}" --column "${DESCRIPTION_STR}" ${LIST_VALUES}
  177. +++ zenity --width=600 --height=400 --list --text 'Which partition?' --radiolist --column Select --column Partition --column Description TRUE loop1 Debian-GNU/Linux-6.0-
  178. ++ echo loop1
  179. + SELECTED_PARTITION=loop1
  180.  
  181.  
  182.  
  183. SELECTED_HARD_DISK=$(rtux_Choose_Hard_Disk ${WHICH_HARD_DISK_INSTALL_GRUB_STR});
  184. rtux_Choose_Hard_Disk ${WHICH_HARD_DISK_INSTALL_GRUB_STR})
  185. rtux_Choose_Hard_Disk ${WHICH_HARD_DISK_INSTALL_GRUB_STR}
  186. ++ rtux_Choose_Hard_Disk Which hard disk to install Grub 'on?'
  187. ++ local 'text_to_ask=Which hard disk to install Grub on?'
  188. ++ local n=0
  189. ++ local HD_LIST_VALUES=
  190. rtux_Get_System_HardDisks)
  191. rtux_Get_System_HardDisks
  192. +++ rtux_Get_System_HardDisks
  193. +++ awk '{ if ( ( NR>2 ) && ( $4 ~ "[[:alpha:]]$" ) ) {print $4} }' /proc/partitions
  194. ++ local DETECTED_HARD_DISKS=sda
  195. ++ for n_hard_disk in '${DETECTED_HARD_DISKS}'
  196. ++ [[ 0 -eq 0 ]]
  197. ${FDISK_COMMAND} -l | egrep ${n_hard_disk} | egrep 'Disk.*bytes' | awk '{ sub(/,/,""); print $3 "-" $4 }'
  198. +++ /sbin/fdisk -l
  199. +++ egrep sda
  200. +++ egrep 'Disk.*bytes'
  201. +++ awk '{ sub(/,/,""); print $3 "-" $4 }'
  202. ++ local 'HD_LIST_VALUES=TRUE sda 1000.2-GB'
  203. ++ let n=n+1
  204. zenity ${ZENITY_COMMON_OPTIONS} --list --text "${text_to_ask}" --radiolist --column "${SELECT_STR}" --column "${HARDDISK_STR}" --column "${SIZE_STR}" ${HD_LIST_VALUES})
  205. zenity ${ZENITY_COMMON_OPTIONS} --list --text "${text_to_ask}" --radiolist --column "${SELECT_STR}" --column "${HARDDISK_STR}" --column "${SIZE_STR}" ${HD_LIST_VALUES})
  206. zenity ${ZENITY_COMMON_OPTIONS} --list --text "${text_to_ask}" --radiolist --column "${SELECT_STR}" --column "${HARDDISK_STR}" --column "${SIZE_STR}" ${HD_LIST_VALUES}
  207. +++ zenity --width=600 --height=400 --list --text 'Which hard disk to install Grub on?' --radiolist --column Select --column 'Hard Disk' --column Size TRUE sda 1000.2-GB
  208. ++ echo sda
  209. + SELECTED_HARD_DISK=sda
  210.  
  211. if rtux_Grub_Install ${SELECTED_HARD_DISK} ${SELECTED_PARTITION} ; then
  212. rtux_Message_Success ${GRUB_INSTALLED_OK_STR}
  213. else
  214. rtux_Message_Failure ${GRUB_NOT_INSTALLED_STR}
  215. fi
  216. + rtux_Grub_Install sda loop1
  217. + local EXIT_VALUE=1
  218. + local SELECTED_HARD_DISK=sda
  219. + local SELECTED_PARTITION=loop1
  220. rtux_Get_System_HardDisks)
  221. rtux_Get_System_HardDisks
  222. ++ rtux_Get_System_HardDisks
  223. ++ awk '{ if ( ( NR>2 ) && ( $4 ~ "[[:alpha:]]$" ) ) {print $4} }' /proc/partitions
  224. + local DETECTED_HARD_DISKS=sda
  225. + local SELECTED_HARD_DISK_DEV=/dev/sda
  226. + local n_partition=loop1
  227. + local TMP_MNT_PARTITION=/mnt/rescatux/loop1
  228. + local TMP_DEV_PARTITION=/dev/loop1
  229. + mkdir --parents /mnt/rescatux/loop1
  230. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  231. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null)
  232. mount -t auto ${TMP_DEV_PARTITION} ${TMP_MNT_PARTITION} 2> /dev/null
  233. ++ mount -t auto /dev/loop1 /mnt/rescatux/loop1
  234. + mount -o bind /dev /mnt/rescatux/loop1/dev
  235. + mount -o bind /proc /mnt/rescatux/loop1/proc
  236. + mount -o bind /sys /mnt/rescatux/loop1/sys
  237. + [[ -e /mnt/rescatux/loop1/etc/issue ]]
  238. + rtux_File_Reordered_Device_Map
  239. grub-install/run: line 50: /mnt/rescatux/loop1/device.map.rescatux: Read-only file system
  240. + local TMP_SCRIPT=/tmp/4739.sh
  241. + local TMP_MNT_PARTITION_SCRIPT=/mnt/rescatux/loop1/tmp/4739.sh
  242. + rtux_File_Chroot_Script_Device_Map 'if grub-install.unsupported --version ; then ' 'grub-install.unsupported /dev/sda ;' ' elif grub-install --version ; then ' 'grub-install /dev/sda ;' ' else ' 'grub2-install /dev/sda ;' fi
  243. grub-install/run: line 58: /mnt/rescatux/loop1/tmp/4739.sh: Read-only file system
  244. + chmod +x /mnt/rescatux/loop1/tmp/4739.sh
  245. chmod: cannot access `/mnt/rescatux/loop1/tmp/4739.sh': No such file or directory
  246. + chroot /mnt/rescatux/loop1 /bin/bash /tmp/4739.sh
  247. /bin/bash: /tmp/4739.sh: No such file or directory
  248. + EXIT_VALUE=127
  249. + mount -t auto -o remount,rw /dev/loop1 /mnt/rescatux/loop1
  250. mount: you must specify the filesystem type
  251. + rm /mnt/rescatux/loop1/tmp/4739.sh
  252. rm: cannot remove `/mnt/rescatux/loop1/tmp/4739.sh': No such file or directory
  253. + umount /mnt/rescatux/loop1/sys
  254. + umount /mnt/rescatux/loop1/proc
  255. + umount /mnt/rescatux/loop1/dev
  256. + umount /mnt/rescatux/loop1
  257. + return 127
  258. + rtux_Message_Failure Grub was not installed. Something went 'wrong!' ':('
  259. + local 'text_to_show=Grub was not installed. Something went wrong! :('
  260. + zenity --width=600 --height=400 --info '--title=Failure!' '--text=Grub was not installed. Something went wrong! :('
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement