Monday 9 March 2015

Add Knoppix+Persistence to your E2B drive

Note: this must be done using an NTFS E2B USB drive rather than a FAT32 E2B drive, because usually the .imgPTN file will be greater than 4GB for a full Knoppix OS + persistence file.



Instructions

It is fairly easy to add persistence to Knoppix if you use a .imgPTN partition image:

1. Drag-and-drop the Knoppix ISO file onto the MakePartImage.cmd  Desktop shortcut (do not use the MPI_FAT32 shortcut). You need to specify a larger file than the default size that MPI would choose. Also, for Koppix 7.7, choose SysLinux version 5 when prompted (or else it may not boot correctly).

2. Choose a size for the .imgPTN file that is the same size as you ISO file PLUS the size of the persistence storage that you want - e.g. 4000MB for the ISO and 1000MB for the persistence file = 5000MB. Choose FAT32 and a suitable filename ending in .imgPTN.
You MUST choose FAT32 for the filesystem format of the .imgPTN file - if you choose NTFS you will need to also modify the CSM \menu.lst file (see below).
Note: If using FAT32, you cannot have a persistence file of >4GB. See below if you really want >4GB for persistence.

3. Copy the .imgPTN file to your E2B USB drive (e.g. \_ISO\LINUX folder) and boot to E2B.

4. Select the Knoppix .imgPTN file and press ENTER to get to the CSM menu or use SWITCH_E2B.exe.

Now try to boot to Knoppix from the CSM menu - Knoppix should prompt you to create a persistence file (it will tell you the maximum size possible):

If you don't get this prompt (i.e. you have less than 200MB of spare space on the drive) - continue as below:

5. Unplug the USB drive (or quit the VM session if you are using a VM) and connect the E2B USB drive to your Windows system - you should see a 5GB volume/drive containing a \KNOPPIX folder. If not, then you did not get to the CSM menu successfully!

6. Run RMPrepUSB and click the  Create ext2/3/4 FS  button and enter a  ext2 filename of knoppix-data.img   (Note: use this EXACT name and keep the case the same as it is case-sensitive). Choose any Volume Name you like and a size that is as large as possible to fit the remaining unused spare space left in the FAT32 volume.
Note: I have not tested it, but ext3 may be less likely to get corrupted than ext2.

7. Once the knoppix-data.img file has been made, move it from the root of the E2B drive to the \KNOPPIX folder.

Now when you next boot Knoppix from the CSM menu, you should see a message to show it has found the file (see screenshot below):


Note: You can instead create the persistence file from within Knoppix using the following commands:

Example for 1GB persistence file:
dd if=/dev/zero of=/mnt-system/KNOPPIX/knoppix-data.img bs=1024k count=1000
mke2fs -m 0 -F /mnt-system/KNOPPIX/knoppix-data.img


Using a >4GB persistence file

You can repeat the method above but specify NTFS when making the MakePartImage .imgPTN file and allow at least 4GB of extra space for persistence.

However, once you boot to the CSM Menu, it will not boot from the menu entries because syslinux could not be installed (you should have been warned of this when MakePartImage ran).

To fix this we need to add an extra menu entry to the CSM  \menu.lst file:

Example menu
title Knoppix\n Boot to Knoppix 
kernel /boot/isolinux/linux lang=en apm=power-off  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 noeject 
initrd /boot/isolinux/minirt.gz 
boot
This example will run the default version of Knoppix 7.2. The cheat codes and kernel and initrd files may vary slightly with each distro. Examine the \boot\isolinux\isolinux.cfg file to find the correct options for your preferences. 


2 comments:

  1. nice, and it is working, just one more "small" question:

    any way to make knoppix kernel option: "toram" work ?

    I know, I'm asking for too much, right now it is working with that option, but will lose save of persistent - the knoppix-data.img is also copied to ram, so even that previous user settings are loaded, any new modification won't be saved

    ReplyDelete
  2. You can obviously change the kernel parameters yourself.

    ReplyDelete