03 listopada 2012 blog virtualbox iso
Uruchamiamy VirtualBox i tworzymy nową maszynę, nazywamy ją livecd. Koniecznie ustawiamy, żeby pierwszym urządzeniem, z którego się będzie nasza maszyna bootowała, było CD/DVD-ROM.
Ściągamy skrypt livecd (zawsze najświeższa wersja).
Opis działania skryptu: Najpierw zostają sprawdzone wersje oprogramowania aktualnie zainstalowanego. Jeśli moduł kernela vboxdrv
nie jest jeszcze załadowany, zostaje wczytany. Jeśli nie istnieje vboxdrv
dla bieżącej wersji kernela, zostaje zbudowany przez DKMS (Dynamic Kernel Module Support). Następnie obraz płyty zostaje zamontowany do pierwszego urządzenia Storage Controller dostępnego w wirtualnej maszynie. Ostatnim krokiem jest włączenie wirtualnej maszyny.
#! /usr/bin/env bash
## configuration:
# name of vbox machine:
MACHINENAME='livecd'
# get version of vbox, e.g. 4.2.4-1
VIRTUALBOX_VERSION=$(pacman -Q virtualbox|awk {'print $2'}|sed 's/\-.\+//')
# get version of kernel, e.g. 3.6.5-1-ck/x86_64
KERNEL_VERSION=$(uname -rm|sed 's/\ /\//')
if [[ `lsmod | grep vboxdrv | wc -l` -ge 1 ]] ; then
echo 'Ok, vboxdrv loaded already'
else
echo "Virtualbox version = $VIRTUALBOX_VERSION, kernel version = $KERNEL_VERSION"
echo 'Running: sudo modprobe vboxdrv'
sudo modprobe vboxdrv || ( \
echo 'Running: sudo install install vboxhost' && \
sudo dkms install vboxhost/$VIRTUALBOX_VERSION -k $KERNEL_VERSION && \
sudo modprobe vboxdrv )
fi
CONTROLLERNAME=$(VBoxManage showvminfo $MACHINENAME | grep 'Storage Controller ' | grep '(0)' | grep 'Name' | sed 's/.*://' | sed 's/^ *//g')
pushd "`dirname $1`" > /dev/null
DIRNAME="`pwd`"
FILENAME="`basename $1`"
popd > /dev/null
echo "Attaching \"$DIRNAME/$FILENAME\" to \"$CONTROLLERNAME\" on \"$MACHINENAME\""
VBoxManage storageattach $MACHINENAME --storagectl "$CONTROLLERNAME" \
--port 1 --device 0 --type dvddrive --medium "$DIRNAME/$FILENAME" && \
VBoxManage startvm livecd
MACHINENAME
- nazwa wirtualnej maszyny,VIRTUALBOX_VERSION
- wersja VirtualBox. Skrypt został napisany z myślą o Arch Linux. Jeśli korzystasz z innej dystrybucji, należy dostosować tę linię,KERNEL_VERSION
- w większości przypadków nie trzeba zmieniać, jest to wersja kernela.