If you add a new disk to a Linux VM system and you don't want to reboot it, you must rescan the SCSI bus to detect it.
Here you can find a bash script that will do this task for you:
http://www.garloff.de/kurt/linux/
Thanks to garloff.
If you add a new disk to a Linux VM system and you don't want to reboot it, you must rescan the SCSI bus to detect it.
Here you can find a bash script that will do this task for you:
http://www.garloff.de/kurt/linux/
Thanks to garloff.
Here is a good article that explains how to use iSCSI on a VMware esx 3.5:
There is also a similar document for vSphere (esx 4):
From VMware Knowledge Base:
When you log into the ESX 3.x host service console, you see the message:
Configuration changes were not saved successfully during previous shutdown.
Note: This message is stored in /etc/motd and is generated by the /etc/init.d/vmware script when esxcfg-boot -r returns an error when executed during a shutdown of the ESX host.
The log file /var/log/messages may show the following error messages:
ERROR: Execution of '/sbin/vmware-mkinitrd -r -f -v /tmp/vmware.1.tmp '2.4.21-37.0.2.ELvmnix'' failed. See log messages above.
ERROR: Could not write out new initrds.
You need to recreate the initrd image file.
T o recreate the initrd image file:
Log in as a user with administrative privileges.
Run the commands:
esxcfg-boot -b
esxcfg-boot -p
esxcfg-boot -r
The message does not appear on the next ESX host reboot.
Note: A screenshot is shown below:
Here is my last bash script, it gets the pressed key in bash, enjoy.#!/bin/bash
function identify_key {
local key="$@"local printable=""case "$key" in"1b") echo "ESC ($key)";;"09") echo "TAB ($key)";;"1b 1b") echo "DOUBLE ESC ($key)";;"7f") echo "BKS ($key)";;"1b 5b 41") echo "UP ($key)";;"1b 5b 42") echo "DOWN ($key)";;"1b 5b 43") echo "RIGHT ($key)";;"1b 5b 44") echo "LEFT ($key)";;"1b 5b 47") echo "NUM5 ($key)";;"1b 5b 50") echo "PAUSE ($key)";;"1b 5b 31 7e") echo "HOME ($key)";;"1b 5b 32 7e") echo "INS ($key)";;"1b 5b 33 7e") echo "DEL ($key)";;"1b 5b 34 7e") echo "END ($key)";;"1b 5b 35 7e") echo "PGUP ($key)";;"1b 5b 36 7e") echo "PGDN ($key)";;"1b 5b 5b 41") echo "F1 ($key)";;"1b 5b 5b 42") echo "F2 ($key)";;"1b 5b 5b 43") echo "F3 ($key)";;"1b 5b 5b 44") echo "F4 ($key)";;"1b 5b 5b 45") echo "F5 ($key)";;"1b 5b 31 37 7e") echo "F6 ($key)";;"1b 5b 31 38 7e") echo "F7 ($key)";;"1b 5b 31 39 7e") echo "F8 ($key)";;"1b 5b 32 30 7e") echo "F9 ($key)";;"1b 5b 32 31 7e") echo "F10 ($key)";;"1b 5b 32 33 7e") echo "F11 ($key)";;"1b 5b 32 34 7e") echo "F12 ($key)";;"1b 1b 5b 5b 41") echo "ALT+F1 ($key)";;"1b 1b 5b 5b 42") echo "ALT+F2 ($key)";;"1b 1b 5b 5b 43") echo "ALT+F3 ($key)";;"1b 1b 5b 5b 44") echo "ALT+F4 ($key)";;"1b 1b 5b 5b 45") echo "ALT+F5 ($key)";;"1b 1b 5b 31 37 7e") echo "ALT+F6 ($key)";;"1b 1b 5b 31 38 7e") echo "ALT+F7 ($key)";;"1b 1b 5b 31 39 7e") echo "ALT+F8 ($key)";;"1b 1b 5b 32 30 7e") echo "ALT+F9 ($key)";;"1b 1b 5b 32 31 7e") echo "ALT+F10 ($key)";;"1b 1b 5b 32 33 7e") echo "ALT+F11 ($key)";;"1b 1b 5b 32 34 7e") echo "ALT+F12 ($key)";;"") echo "SPACE or INTRO";;*) # check if it's ALT+xx
if [ ${#key} -gt 2 ] && [ "${key:0:2}" == "1b" ]; then# if string length greather than 2 and starts by Escape (1b)
printable="\x"${key:3} # erases the starting '1b 'printf "ALT+%b (%s)\n" "$printable" "$key"else
printable="\x"$key
printf "%b (%s)\n" "$printable" "$key"fi;;esac}function key_5b {
# process '1b 5b ...' keys and return values
local key=$1
local keyA=""local keyB=""local keyC=""keyA=`echo -n "$key" | hexdump -ve '1/1 "%.2x\n"'`; key=""case "$keyA" in"31" | "32" | "33" | "34" | "35" | "36") # Must read the following keyread -rsn1 -t 1 key # Wait 1 second max for next key
if [ "$key" == "" ]; then# 'ESC + [ + A|B|C|....F' keys pressed (very fast)
echo "$keyA"
else
keyB=`echo -n "$key" | hexdump -ve '1/1 "%.2x\n"'`; key=""if [ "$keyB" == "7e" ]; then# got '~', uses to be the last key so return "XX 7e" where XX is [31|32|33|34|35|36]
echo "$keyA $keyB"
else
read -rsn1 -t 1 key # Wait 1 second max for next key
if [ "$key" == "" ]; then# 'A|B|C|....F + XX' keys pressed (very fast)
echo "$keyA $keyB"
else
keyC=`echo -n "$key" | hexdump -ve '1/1 "%.2x\n"'`; key=""# max depth level, so return
echo "$keyA $keyB $keyC"
fififi;;"5b") # read another key and return (uses to be F1 ... F5 keys) '1b 5b 5b [41|42|43|44|45]'read -rsn1 -t 1 key # Wait 1 second max for next key
keyB=`echo -n "$key" | hexdump -ve '1/1 "%.2x\n"'`; key=""echo "$keyA $keyB"
;;*) # Uses to be UP or other arrow keys '1b 5b [41|42|43|44]' so return
echo "$keyA"
;;esac}function getkey {
local key=""local key1=""local key2=""local key3=""local key4=""oldifs="$IFS"
IFS=" "
read -rsn1 keykey1=`echo -n "$key" | hexdump -ve '1/1 "%.2x\n"'`; key=""if [ "$key1" == "1b" ]; thenread -rsn1 -t 1 key # Wait 1 second max for next key
if [ ! "$key" == "" ]; thenkey2=`echo -n "$key" | hexdump -ve '1/1 "%.2x\n"'`; key=""case "$key2" in"1b") # it could be a double ESC or an ALT+Fx keyread -rsn1 -t 1 key # Wait 1 second max for next key
if [ "$key" == "" ]; then# "1b 1b" 'ESC' key pressed 2 times (very fast)
echo "$key1 $key2"
else
# "1b 1b ..." Uses to be ALT+F? key pressed
key3=`echo -n "$key" | hexdump -ve '1/1 "%.2x\n"'`; key=""if [ "$key3" == "5b" ]; thenread -rsn1 -t 1 key # Wait 1 second max for next key
if [ "$key" == "" ]; then# "1b 1b 5b" 'ESC + ESC + [' keys pressed (very fast)
echo "$key1 $key2 $key3"
else
echo "$key1 $key2 $key3 $(key_5b $key)"
fielse
# Unknown key '1b 1b XX' so return
echo "$key1 $key2 $key3"
fifi;;"5b") # Several posibilities "1b 5b ..."read -rsn1 -t 1 key # Wait 1 second max for next key
if [ "$key" == "" ]; then# "1b 5b" 'ESC + [' keys pressed (very fast)
echo "$key1 $key2"
else
echo "$key1 $key2 $(key_5b $key)"
fi;;*) # ESC + Other key pressed (very fast) or ALT+xx
echo "$key1 $key2"
;;esacelse
# ESC key pressed
echo "$key1"
fielse
echo "$key1"
fiIFS="$oldifs"
return 0
}while true
doecho "----------------------------"
tecla=$(getkey)identify_key $tecladone