|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
|
[PLUG] Converting a VMware SCSI to IDE virtual disk
|
So I created a "typical" VMware VM using the VMware (Workstation 5.5.9)
recommended settings for "Linux, Ubuntu" but it was in fact for Debian
Lenny. Now, due to an initrd-tools bug (I think) the latest kernel
2.6.26-1-686 will not boot. I get stuck at a "Begin: Waiting for root
file system ..." message during boot. It eventually times-out to
initramfs busybox prompt. When I poke around in there:
echo $ROOT = /dev/sda1 # As expected/desired
ls -l /dev = missing sd* # This is bad!
When I try my previous kernel 2.6.18-6-686, it works fine. I am about
to report this as a bug.
I should have used a virtual IDE disk instead of SCSI when planning to
use Debian. (I'm pretty sure I've learned this the hard way before, but
it obviously didn't stick.)
So long story short(er), the following is the process I used to fix my
mistake. Anyone aware of anything better (besides "Use KVM or Virtual
Box" :)?
* Created new IDE Disk, using the VMware console
* Booted via Ubuntu 8.10 LiveCD
* Partitioned IDE disk, same as old SCSI disk
* Rebooted into Debian to see what the new disk will be called (Ubuntu
8.10 LiveCD had it as sdb2). Sure enough, Debian Lenny called it hda as
I would have expected. I dunno what Ubuntu is doing calling an IDE disk
/dev/sdb.
* Rebooted via Ubuntu 8.10 LiveCD
* Run terminal and 'sudo bash' to become root
* Mounted both file systems [1]:
cd /mnt
mount /dev/sda1 scsi
mount /dev/sdb1 ide # NOTE Ubuntu 8.10 is using sdb even though this is
an IDE disk (AKA hda)
* time rsync --archive --numeric-ids /mnt/scsi/bin /mnt/scsi/boot
/mnt/scsi/etc /mnt/scsi/home /mnt/scsi/initrd /mnt/scsi/lib
/mnt/scsi/media /mnt/scsi/mnt /mnt/scsi/opt /mnt/scsi/root
/mnt/scsi/sbin /mnt/scsi/srv /mnt/scsi/usr /mnt/scsi/var /mnt/ide
= took 43 minutes for 3.9G
* Recreated other stuff deliberately omitted from rsync
cd /mnt/ide
mkdir -m 0755 dev mnt sys srv lost+found
mkdir -m 0555 proc
mkdir -m 1777 tmp
ln -s boot/initrd.img-2.6.18-6-686 initrd.img
ln -s boot/vmlinuz-2.6.18-6-686 vmlinuz
* grub-install --recheck --root-directory=/mnt/ide /dev/sdb # NOTE
Ubuntu 8.10 is using sdb even though this is an IDE disk (AKA hda)
+ Also note that --recheck munges up /boot/grub/device.map, e.g., by
setting things to what the booted Ubuntu LiveCD thinks they are. You
need to fix that below, e.g., sda --> hda.
* Edit "IDE" files:
vi /mnt/ide/etc/fstab
:%s/sda1/hda1/g
vi /mnt/ide/etc/mtab
:%s/sda1/hda1/g
vi /mnt/ide/boot/grub/menu.lst
:%s/sda1/hda1/g
vi /mnt/ide/boot/grub/device.map
(hd0) /dev/hda
* Halt
* Remove SCSI disk via VMware console
* Reboot and test = worked AFAICT
___________________
[1] Note that this was a very simple install, with everything on 1 big
'/' partition. Having more partitions just makes the mount, rysnc and
editing parts more tedious, but this will still work if you get all
those parts right.
Silly note: I sometimes create VMs on VMware Workstation to allow for
full snapshot trees, then do a full clone of the appropriate snapshot
and actually use/run the VM on VMware Server elsewhere. That's true in
this case. So basically, this all worked in VMware Workstation 5.5.9
and VMware Server 1.0.8.
Later,
JP
----------------------------|:::======|-------------------------------
JP Vossen, CISSP |:::======| jp{at}jpsdomain{dot}org
My Account, My Opinions |=========| http://www.jpsdomain.org/
----------------------------|=========|-------------------------------
"Microsoft Tax" = the additional hardware & yearly fees for the add-on
software required to protect Windows from its own poorly designed and
implemented self, while the overhead incidentally flattens Moore's Law.
___________________________________________________________________________
Philadelphia Linux Users Group -- http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug
|
|