DSL Embedded :: DSL embedded writeable and modifyable
This is the steps that I followed to create a virtual installation of DSL. I did this so I could be in Windows XP and play around with a linux distro without having to repartition one of my hard disk. There's also the fact that the base install (+KQemu +virtual disk) is very small (can be under 100MB). For this I started with the following two files: "dsl-3.2-embedded.zip" and "kqemu-1.3.0pre11.tar.gz" (kqemu is optional but DSL will run faster on an ix86 machine; look at the end for instruction).
1. Creating the virtual hard disk
First thing is to create the hard disk. I chose a raw format for now, but qemu as the qcow2 format which allow dynamic growth of the disk. I might try it later.
Action: in Windows XP
C:\dsl-3.2-embedded\KNOPPIX>..\qemu\qemu-img create virtual-partiton.raw 1G
Formating 'virtual-partiton.raw', fmt=raw, size=1048576 kB
C:\dsl-3.2-embedded\qemu>_
2. Make the virtual disk accessible
We have to change the batch file that start DSL in order to acces the virtual drive from within.
Action: in Windows XP
Make a backup copy of the "dsl-base.bat" file, then open the original. In the file find "-hda KNOPPIX/knoppix" and add the following right after " -hdb KNOPPIX/virtual-partition.raw ". Save and start DSL.
3. Preparing for the installation
Because of the way the "dsl-hdinstall" script is made, the file "linux24" and "minirt24.gz" must be found in /cdrom. In my case, the files were in "C:\dsl-3.2-embedded\". I have a SSH server on my Windows box, so I used sftp to get the files. I don't have any other suggestion on how to do this, so either install openssh or find another way to get the two files to their destination.
Action: within DSL open a terminal window
dsl@box:~$ sudo su
[/home/dsl]# cd /cdrom
[/cdrom]# sftp user@192.168.1.11
...
user@192.168.1.11's password: ********
sftp> get linux24
linux24 100% 971KB 817.9KB/s 00:01
sftp> get minirt24.gz
minirt24.gz 100% 782KB 631.5KB/s 00:01
sftp> exit
[/cdrom]# _
4. Installation on the virtual disk
That part gave me the most trouble. At first, I did not know the existance of the "dsl-hdinstall" script, so I partitioned, formated and filled with files the virtual disk, but that didn't work well. It did managed to start DSL by entering the "exit" command after the startup sequence stopped to tell me that it couldn't find DSL. Also, XWindow wouldn't start and DSL looked badly installed. Then I found an article named "DamnsmalllinuxOnQemu" on "Unofficial #qemu Wiki" that had instruction on how to do what I wanted. It was using the "dsl-hdinstall" script. I tried it and it did worked (qemu was not even starting this time). I found that I couldn't use the "-enable-audio" flag. I took it out and it gave me the exact same result as before I knew about the article. I read some more and found that "minirt24.gz" is also called a mini root, so I deduced it was the primordial filesystem for starting DSL. I unzipped it and hook it to DSL (I added "-hdd minirt24" in the batch file). There I found the linuxrc script. The script is made to load the filesystem from an iso image of a cd-rom and I guess iso format don't have a partions (what about multisession??? well I'm not knowledgeable enough to answer that one). So, to make a story short, format but don't partition. Oh, and the only filesystem that can be used at boot time are iso9660, ext2 and vfat, so no ext3 (like offered in dsl-hdinstall).
Action: within the terminal window
[/cdrom]# dsl-hdinstall
...
Enter the target partition. (EXAMPLE: hda2): hdb
Do you wish to install with multi-user logins (y/...)? no
The system will boot directly in X as user dsl.
Use journalized ext3 filesystem (not recommended on slower systems) (y/n)? no
Last chance to exit before destroying any data on /dev/hdb!!
Continue (y/...)? y
Creating filesystem ext2 on /dev/hdb...
/dev/hdb is entire device, not just on partition!
Proceed anyway? (y,n) y
...
Copying files...
...
Now the root filesystem is filled with data...
The copying of system files has been complited.
...
The installation process is finished.
The next step is the boot loader.
Proceed to install a boot loader? (y/...): no
[/cdrom]# shutdown -h 0
[/cdrom]# _
5. Preparing to start DSL with the virtual disk
Action: in Windows XP
Erase "-hda KNOPPIX\knoppix" in the "dsl-base.bat" file. Change "-hdb KNOPPIX\virtual-partition.raw" for "-hda KNOPPIX\virtual-partition.raw" and save.
6. Start DSL from the virtual disk
Action: in Windows XP
Run the batch file and enjoy!
Note on kqemu
You should read the documentation, but basicly install the INF file, add "net start kqemu" to the batch file before "start qemu\qemu.exe ..." and change "-no-kqemu" for "-kernel-kqemu".
Revision history
Last date modified 2007 february 12
Created on 2007 february 11
original here.