Tuesday, October 18, 2011
Performing a rescan of the storage on vSphere
Here you can find a VMware's Knowledge Base article that explains how to perform a rescan of the storage on vSphere.
Thursday, October 6, 2011
Reordering vmnics on vSphere 4.x
Configuring networking from the ESX service console
Here you can find this VMware Knowledge Base that explains how to configure networking from the ESX service console command line.
Details
This article provides steps to configure networking for an ESX host when you only have access to the service console.
Solution
Wednesday, September 28, 2011
Linux rescan SCSI bus
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.
Wednesday, September 21, 2011
Console access on esxi (3.x, 4.x)
By default this isn’t possible. But there’s a way to get this working, just do the following:
- Go to the ESXi console and press alt+F1
- Type: unsupported
- Enter the root password(No prompt, typing is blindly)
- At the prompt type “vi /etc/inetd.conf”
- Look for the line that starts with “#ssh” (you can search with pressing “/”)
- Remove the “#” (press the “x” if the cursor is on the character)
- Save “/etc/inetd.conf” by typing “:wq!”
- Restart the management service “/sbin/services.sh restart”
Here is a video that explains ssh access in esxi 3.x:
http://www.vm-aware.com/2008/07/enable-ssh-for-esxi/
Here is a video that explains how to modify the kernel in esxi v4.x to enable ssh access:
http://www.youtube.com/watch?v=FxB0IIpwZu
Thursday, September 8, 2011
Connecting iSCSI from VMware esx
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):
Wednesday, September 7, 2011
ESX host displays the message "Configuration changes were not saved successfully during previous shutdown"
From VMware Knowledge Base:
Details
-
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.
- initrd-2.4.21-37.0.2.ELvmnix.img in the /boot directory has a size of zero
Solution
You need to recreate the initrd image file.
T o recreate the initrd image file:
- Start the system and select ESX troubleshooting mode.
-
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.
Mounting a Windows share from VMware esx 4
First of all you must enable netbios ports on esx firewall, for this task you can run the following commands on your esx server
How to install/enable .Net 3.5 SP1 on Windows Server 2008 R2 for SQL Server 2008 and SQL Server 2008 R2
http://blogs.msdn.com/b/sqlblog/archive/2010/01/08/how-to-install-net-framework-3-5-sp1-on-windows-server-2008-r2-environments.aspx
The .NET Framework 3.5 SP1 (also referred to as .NET Framework 3.5.1) is a prerequisite for SQL Server 2008. SQL Server 2008 Setup for standalone instance will install the .NET Framework 3.5 SP1 if it is not already installed. In Windows Server 2008 R2, the .NET Framework is a feature and installing it is different when compared to older versions of Windows Operating System. In previous versions, one could either download the .NET Framework 3.5.1 install binaries from Microsoft download site or use the install binaries from the redist folder of the SQL Server 2008 installation media. Starting with Windows Server 2008 R2, the method of installing .NET Framework 3.5.1 has changed. This document explains how to verify that .NET Framework 3.5.1 is installed and if it is not installed how you can add it.
How to verify if .NET Framework 3.5 SP1 is installed:
Here are the steps to verify that .NET Framework 3.5.1 is installed on Windows Server 2008 R2.- Click the Start button in the lower left hand corner of the display.
- Highlight Administrative Tools and select Server Manager.
- In the Server Manager interface, click Features to display all the installed Features in the right hand pane. Verify that .NET Framework 3.5.1 is listed.
Method 1: Using Server Manager Interface
- In the Server Manager interface, select Add Features to displays a list of possible features.
- In the Select Features interface, expand .NET Framework 3.5.1 Features.
- Once you expand .NET Framework 3.5.1 Features, you will see two check boxes. One for .NET Framework 3.5.1 and other for WCF Activation. Check the box next to .NET Framework 3.5.1 and click Next.
- Note: If you do not expand .NET Framework 3.5.1 Features and check it, you will get a pop-up titled Add Features Wizard as shown below.
- Click Cancel and expand .NET Framework 3.5.1 Features and then check .NET Framework 3.5.1 check box below it.
- You cannot install .NET Framework 3.5.1 Features unless the required role services and features are also installed.
- In the Confirm Installation Selections interface, review the selections and then click Install.
- Allow the installation process to complete and then click Close.
- Click the Start button in the lower left hand corner of the display.
- Highlight All Programs and select Accessories
- Expand Windows PowerShell and right click Windows PowerShell and select Run as administrator. Click Yes on the User Account Control box.
- At the PowerShell command prompt, type the following commands, and then press ENTER after each command:
- Import-Module ServerManager
- Add-WindowsFeature as-net-framework
Note: A screenshot is shown below:
Thursday, August 4, 2011
Get pressed key in bash, works in VMware esx
Here is my last bash script, it gets the pressed key in bash, enjoy.#!/bin/bashfunction 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+xxif [ ${#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"elseprintable="\x"$keyprintf "%b (%s)\n" "$printable" "$key"fi;;esac}function key_5b {# process '1b 5b ...' keys and return valueslocal key=$1local 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 keyif [ "$key" == "" ]; then# 'ESC + [ + A|B|C|....F' keys pressed (very fast)echo "$keyA"elsekeyB=`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"elseread -rsn1 -t 1 key # Wait 1 second max for next keyif [ "$key" == "" ]; then# 'A|B|C|....F + XX' keys pressed (very fast)echo "$keyA $keyB"elsekeyC=`echo -n "$key" | hexdump -ve '1/1 "%.2x\n"'`; key=""# max depth level, so returnecho "$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 keykeyB=`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 returnecho "$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 keyif [ ! "$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 keyif [ "$key" == "" ]; then# "1b 1b" 'ESC' key pressed 2 times (very fast)echo "$key1 $key2"else# "1b 1b ..." Uses to be ALT+F? key pressedkey3=`echo -n "$key" | hexdump -ve '1/1 "%.2x\n"'`; key=""if [ "$key3" == "5b" ]; thenread -rsn1 -t 1 key # Wait 1 second max for next keyif [ "$key" == "" ]; then# "1b 1b 5b" 'ESC + ESC + [' keys pressed (very fast)echo "$key1 $key2 $key3"elseecho "$key1 $key2 $key3 $(key_5b $key)"fielse# Unknown key '1b 1b XX' so returnecho "$key1 $key2 $key3"fifi;;"5b") # Several posibilities "1b 5b ..."read -rsn1 -t 1 key # Wait 1 second max for next keyif [ "$key" == "" ]; then# "1b 5b" 'ESC + [' keys pressed (very fast)echo "$key1 $key2"elseecho "$key1 $key2 $(key_5b $key)"fi;;*) # ESC + Other key pressed (very fast) or ALT+xxecho "$key1 $key2";;esacelse# ESC key pressedecho "$key1"fielseecho "$key1"fiIFS="$oldifs"return 0}while truedoecho "----------------------------"tecla=$(getkey)identify_key $tecladone