Tuesday 17 December 2013

RMPrepUSB v2.1.716 now released


  • Bug in Drive->File and File->Drive functions fixed
  • lateste grub4dos grldr file 0.4.5c 2013-11-30 used.
Download from here.

Monday 16 December 2013

Boot HitManPro from Easy2Boot (or any grub4dos USB Flash drive)

HitManPro (Hitman Pro) can be booted from a grub4dos multiboot or Easy2Boot USB flash drive as follows:

Friday 13 December 2013

Avast! Anti-Virus Rescue Disk USB boot problems (+fixes)


If you have installed Avast! AV (Avast 2014.9.0.2008) onto your Windows system, you can make a bootable USB drive or ISO file from the Tools menu. However, you may run into problems when using it to make a USB drive. Here are some quick instructions for 3 different situations (see the 'Long Story' below for more details):

Wednesday 11 December 2013

Having trouble making files contiguous on a USB drive?

Easy2Boot (and many other grub4dos boot drives) require the files on the bootable USB drive to be contiguous for certain features to work.

RMPrepUSB has an option to run WinContig (included in the RMPrepUSB download) using the Ctrl-F2 hotkey in RMPrepUSB to make all the files on the E2B drive contiguous. Sometimes WinContig may fail to make all files contiguous however and this is usually due to the lack of free space available on the drive.

  • In the diagram above, FILE 4 is 1.3GB in size and is not contiguous.
  • Since there is not 1.3GB of contiguous free space on the drive, WinContig cannot copy the FILE 4 to an area of contiguous free space because there is no free space large enough.
  • If you copy a new 1.3GB file to this drive, it will have to occupy the unused free space and so the new file will also be non-contiguous
A nice tool you can use to help you look at the files on the USB drive and understand what is happening is the free Piriform Windows utility Defraggler.























Defraggler also asks if you want to erase the Recycle Bin files when you Analyze or Defrag a drive.

As you can see from the screenshot above, you can select a drive, click Analyze and then immediately see the fragmented files (shown by the red squares). You can then select a red square and Defraggler will list what files are in that block. You can then tick the checkbox next to any of these files and defragment them separately by clicking the 'Defrag checked' button. Nice!

WinContig does not consolidate the unused free space on a drive volume. This means that if there is not a contiguous run of free clusters on the drive, WinContig and Defraggler will not be able to defrag a large file.

However, you can use the Defraggler - Defrag Freespace option to collect all the unused clusters into one or two large blocks. This is a very useful feature and will often fix any WinContig issues you may have (run WinContig afterwards).



Defraggler is not a good tool to use on the whole USB drive however. It attempts to move all the files to the beginning of the drive as well as make them contiguous. This can take a longggg time and is also unnecessary. What is more, if you Stop Defraggler during a defrag operation, it can prevent the drive from being defragged again and prevent WinContig from being able to make all the files contiguous unless you first delete a large file from the USB drive to make more room or use the Defrag Freespace option! So I would advise that you only use Defraggler to defrag single files and don't interrupt it once it has started. If you need to make all files on a drive contiguous use WinContig (or Ctrl+F2 in RMPrepUSB).

P.S. In case you missed it, in a previous blog post, I describe a case where a 6GB ISO could not be copied and then defragged on an empty 8GB USB drive and the reason why this happens.

Tuesday 10 December 2013

Easy2Boot v1.19Beta available

I have uploaded v1.19 and called it a Beta because there are quite a few changes.
I found that the grub4dos 0.4.6a version of grldr used in E2B v1.18 has bugs (hangs on the find command) and so with v1.19 I have gone back to using the 0.4.5c version (2013-11-30).

Other E2B v1.19Beta changes are:

  1. If using a 1024x768 background you may have observed horizontal black lines across the lower 1/3 of the screen. This is now fixed (thanks for reporting this Krishna).
  2. Clonezilla .mnu file added to docs folder for easy backup/restore from an external USB E2B HDD.
  3. A language folder (\_ISO\e2b\grub\ENG) now holds some files which are use by E2B for the English messages. You can now copy this entire folder (to say \_ISO\e2b\grub\SPANISH) and then change the text in the SPANISH folder files. To flip over E2B to use these Spanish files, use 'set LANG=SPANISH' in your MyE2B.cfg file.
  4. If you had 'iftitle' entries in your Main menu, you may have noticed that they disappeared if you returned from a sub-menu to the Main menu. This has now been fixed  (thanks again for reporting this Krishna). Note that some of the sample .mnu files in the docs folder have also been tweaked and you may need to update your E2B .mnu files with the new version if you have used xbmcbuntu_12.2_Persist.mnu or CloneZillaBackupRestoreHDD0.mnu.
  5. The PassPass download (see bottom of the E2B Tutorial 72a page) has been modified. This had some problems with corrupting 1024x768 backgrounds and returning back to previous menus.
Multiple Language Support
Note: You could put code at the bottom of your MyE2B.cfg so that the user can choose a language - e.g.

set LANG=ENG
set ask=
set /p ask=SPANISH or ENGLISH (Seleccionar espanol o Ingles) [S=Spanish/espanol] : 
if /i "%ask%"=="S" set LANG=SPANISH
set ask=

Note that you must use 'espanol' instead of 'español' as when MyE2B.cfg is run, we are still in text mode and not in graphics mode so UTF-8 characters won't display correctly.

Of course, all of the .mnu files would also have to be modified where required - e.g. for instance, for the \_ISO\MAINMENU\ZZZF8ReloadMenu.mnu file, you would need to rename it and then modify it and add extra menus for Spanish  (save the .mnu file in UTF-8 format so you get the grave accents, etc.):

For example, this will display the F8 option in the Main menu in either English or Spanish, depending on what the user chooses when E2B boots:

\_ISO\MAINMENU\ZZZF8ReloadMenuENG_SPAN.mnu file
============================================

iftitle [if "%GFX%"=="" if "%LANG%"=="ENG"] ^F8 Reload Main Menu  [F8]\n
debug 0
if exist (bd)/_ISO/e2b/grub/menu.lst configfile (bd)/%grub%/menu.lst 
if not exist (bd)/_ISO/e2b/grub/menu.lst set MFOLDER=/_ISO/MAINMENU && configfile (md)0xA000+0x50
boot

iftitle [if not "%GFX%"=="" if "%LANG%"=="ENG"] Reload Main Menu\n
debug 0
#clear all variables if reload menu.lst!
if exist (bd)/_ISO/e2b/grub/menu.lst configfile (bd)/%grub%/menu.lst 
if not exist (bd)/_ISO/e2b/grub/menu.lst set MFOLDER=/_ISO/MAINMENU && configfile (md)0xA000+0x50
boot

iftitle [if "%GFX%"=="" if "%LANG%"=="SPANISH"] ^F8 Recargar Menù Principal [F8]\n
debug 0
#clear all variables if reload menu.lst!
if exist (bd)/_ISO/e2b/grub/menu.lst configfile (bd)/%grub%/menu.lst 
if not exist (bd)/_ISO/e2b/grub/menu.lst set MFOLDER=/_ISO/MAINMENU && configfile (md)0xA000+0x50
boot

iftitle [if not "%GFX%"=="" if "%LANG%"=="SPANISH"] Recargar Menù Principal\n
debug 0
#clear all variables if reload menu.lst!
if exist (bd)/_ISO/e2b/grub/menu.lst configfile (bd)/%grub%/menu.lst 
if not exist (bd)/_ISO/e2b/grub/menu.lst set MFOLDER=/_ISO/MAINMENU && configfile (md)0xA000+0x50
boot


Please let me know how you get on with this new version. When the bugs are fixed in grub4dos 0.4.6a I will switch back to it again, but for now use the 0.4.5c 2013-11-30 version of grldr (272,951 bytes).


Monday 9 December 2013

Easy2Boot v1.19 has better support for languages and text changes

E2B uses a lot of .mnu text files which can easily be edited by the user. However, some of the menu entries come from code embedded in the grub4dos script files and these are difficult to change.
E2B v1.19 will have better support for you to change much more of the menu and scripts into different languages. The new versions has a new \_ISO\e2b\grub\ENG folder containing these files:

MenuF9.hdr
MenuF10.hdr
MenuFastLoad.hdr
MenuDefaults.hdr
MenuF7.hdr
MenuF8.hdr
MenuWinMenu.hdr
XPWINNT.g4b
XPStep1.g4b
XPStep2.g4b
XPStep2LowRam.g4b
RunWin8.g4b
RunVista.g4b
MenuWinInstall.lst
PickaFile.g4b
ReadMe.txt

If you want to change the text in any of these files to Spanish or French or whatever, then simply copy the whole folder and make a new folder under the grub folder - e.g. \_ISO\e2b\grub\SPANISH. You can then change the text in those files as you like. To switch over to your new files, set the LANG variable in your \_ISO\MyE2B.cfg file, e.g.

set LANG=SPANISH

You can also copy the \_ISO\e2b\cfg\Menu.lst file to your new folder and change the startup messages if you wish.

This means you can change these files without affecting the E2B files. Any new E2B updates will not affect your files.

See my previous blog for details on how to allow the user to choose between two languages.

Installing Windows 7 from an ISO from an Easy2Boot HDD (no Helper Flash drive)

Update: Using E2B v1.32 and later, you can boot from a partition image containing the Windows Install files. This means you can have lots of different .imgPTN files on your E2B hard disk and boot to any of the images in either MBR/BIOS CSM mode or UEFI mode without needing a Helper flash drive. It only takes a minute to create the image file from a Windows Install ISO and add it to your E2B drive.

Easy2Boot can install Windows Vista and later Windows OS's from any number of different Windows Install ISO files on the E2B USB drive, however if your E2B drive is a hard drive or fixed-disk type of Flash drive (i.e. not a removable Flash drive) then you also need to connect a USB 'removable' Flash drive (Helper drive) when you boot from the E2B Hard drive.

This is because the AutoUnattend.xml file is only detected by Windows PE Setup if it is on a removable drive (such as a removable USB Flash drive or DVD). The special E2B AutoUnattend.xml file (if detected by Windows PE) causes the whole Windows ISO to be loaded as a Virtual drive. If Windows Setup does not see a \Sources folder on any drive in the system, we get this message:



However, if you only ever want to install from just ONE Windows Install ISO from an E2B hard drive, you can just extract the \Sources folder from the ISO that you want to use and copy the whole \sources folder to the root of your E2B Hard drive. Then when Windows PE Setup boots, setup will see the \sources folder and be happy (i.e. you won't see the 'A required CD/DVD drive device driver is missing' message).

To get Windows 7 to prompt you to choose from a number of Windows 7 versions (Basic, Professional, Ultimate, etc.) then delete the \sources\ei.cfg file. So on your E2B USB HDD we have:
  • \_ISO\WINDOWS\Win7\Win7_32_SP1.iso
  • \Sources\*.*   (extracted contents of \sources folder from the Win7 Install ISO)
Actually, I found that only 2 Win7 files (\sources\setup.exe and \sources\install.wim) are required for a Win7 SP1 install in this way (I have not tested other Windows versions). Win8 may need a special ei.cfg file or more files in the \sources folder than Win7.
To save space, you can delete the large \sources\install.wim file inside the ISO file using a suitable ISO editing utility (e.g. Daemon Tools or Magic ISO).

P.S. To install Vista/7/8 from ISO files an E2B USB HDD (or if booting from a VM) without a USB removable Flash Helper drive, you can manually run \_ISO\e2b\Firadisk\LOADISO.cmd - see here for details.

[Edit] Win8.1 also needs just the \sources\install.wim and the \sources\setup.exe files.

Friday 6 December 2013

Dell Inspiron 530 + WD Passport 2TB USB drive troubles!

Today I tried to backup my Dell Inspiron 530 system's internal SATA hard disk by booting from my 2TB WD Passport USB 3.0 hard disk installed with Easy2Boot and containing the Clonezilla ISO and the .mnu file detailed in the previous blog post.
It was the first time that I had tried to boot the Dell system from the Passport drive and it seems that the Dell doesn't like it! If I connect the Passport drive to one of the Dell USB 2.0 ports, not only does the Dell BIOS not detect the Passport USB drive, but it also does not detect any other USB drive which I also have connected at the same time.
Even if I connect a single USB Flash drive only, press F12 to get to the BIOS Boot Selection menu and then connect the Passport hard drive, the BIOS fails to boot from the USB Flash drive (the symptoms indicate that the USB Flash drive is no longer accessible as it only tries to boot from the other internal drives in the system).
In the end, I found that I needed to boot with only an E2B USB Flash drive connected, boot to the E2B menu from the Flash drive and then connect the Passport USB hard drive. Then, when I booted to the Clonezilla ISO, Clonezilla saw the two USB drives and all the internal hard disks.
The problem now was that E2B had enumerated the hard drives in the system incorrectly and so it had set the Passport USB drive as sdd1 (my Dell system has 3 internal hard drives), whereas the Passport USB hard drive was designated as sde1 by Clonezilla once it had booted.
To fix this I modified the Clonezilla menu that I posted in my previous blog. Now the user can override the drive designations chosen by the E2B grub4dos menu code if they wish (see below):


I have updated the previous blog post with the new menu code and also updated the .mnu file in Tutorial 118. So now you can boot from an E2B USB Flash drive but you can store the Clonezilla backups on another drive (or even backup or restore a different drive in the system).

Let me know if you try this and tell me how you got on.
Cheers
Steve


Thursday 5 December 2013

Disk Imaging using a Clonezilla ISO file on an Easy2Boot USB Hard Drive

By adding the Clonezilla ISO to your large E2B USB bootable hard drive plus a .mnu file, you can easily create and restore complete hard disk images. Clonezilla can be scripted so that you can define the location of the backup images and the disk to be operated on (i.e. backed-up or restored).

Tutorial 118 describes how to add these options to your E2B menu:


The E2B menu is hard-coded to use '/dev/sda' as the target drive. This means that when you boot from the E2B USB drive, you must ensure that sda is the drive that you want to backup or restore. All backup images are placed in the /clonezilla folder on the E2B USB drive.
Also, E2B assumes that the last linux drive is the E2B USB drive where the /clonezilla image backups are kept. E2B tries to guess at the linux drive designation of the E2B drive, but again you need to double-check this before you confirm the operation.

If you wish you can run the ISO manually and choose your own options.

So add the ISO and .mnu file to your 1TB E2B USB Hard disk and try it out on a test system (but be careful when restoring!).

Disclaimer: please don't blame me if you accidentally wipe your system hard disk when restoring an image or wipe your USB E2B drive - Clonezilla is a powerful tool!

Any comments welcome.

Here is the .mnu file (you can download it from the Tutorial), it is also included in the latest version of E2B in the \_ISO\docs\Sample mnu files folder.

# Note: This menu is for Easy2Boot USB drives which have an unused 4th partition entry - the partnew command used in the grub4dos menu below will erase the 4th partition on the USB boot drive.

# Make a \_ISO\BACKUP\Clonezilla folder and copy clonezilla-live-20131125-saucy-i386.iso and this file to it
# Make and empty \clonezilla folder on your E2B drive (note all lower case letters!)
# If you want the menu to appear in the Main E2B menu - use a \_ISO\MAINMENU\clonezilla folder instead.

title Create Backup Image of first Hard Disk (Clonezilla)\n Make an image backup of your internal hard disk
set ISO=%MFOLDER%/Clonezilla/clonezilla-live-20131125-saucy-i386.iso
set WDRV=sda
# Backup drive is always last drive
set /a HDCNT=*0x475 & 0xff
set /A BAKDRV=%HDCNT%+0x60
echo %BAKDRV:~1,9% | set dlet=
echo -e sd\%dlet%1 | set BAKDRV=
echo BACKUP DRIVE
echo -e ============
echo
echo BACKUP IMAGES will be placed in clonezilla folder on $[010f]%BAKDRV%
set /p ask=Press ENTER if OK or specify the linux name of the USB partition (e.g. %BAKDRV%) : 
echo
echo
if not "%ask%"=="" set BAKDRV=%ask%
set ask=
echo The drive to be backed up will be $[010f]%WDRV%
set /p ask=Press ENTER if OK or specify the linux name of the target drive (e.g. %WDRV%) : 
echo
if not "%ask%"=="" set WDRV=%ask%
echo
echo You can check the drive names once CloneZilla has booted.
echo -e When Clonezilla starts, select <Cancel>
echo Then choose 'cmd' to get to the command prompt
echo Then type    sudo fdisk -l            to show all the drives in the system
echo or   type    sudo fdisk -l /dev/sdb   to show drive sdb parameters
echo
echo $[010f]%BAKDRV% WILL CONTAIN THE IMAGE FILES
echo $[010f]%WDRV%  WILL BE THE DRIVE TO BE BACKED UP
echo
set /p ask=Press Y to continue (Y/N) : 
if not /I "%ask%"=="Y" configfile (md)0xa000+0x50
echo
set ask=
set HDCNT=
set dlet=
partnew (hd0,3) 0x00 %ISO%
map %ISO% (0xff)
map --hook
set BOPT=boot=live quiet live-config noswap nolocales edd=on nomodeset ip=frommedia ocs_live_keymap="NONE" splash
set RUN=ocs_live_run="ocs-live-general" keyboard-layouts="NONE" locales="en_US.UTF-8" live-media-path=/live toram=filesystem.squashfs ocs_live_batch="yes" 
set PRERUN=ocs_prerun="mount /dev/%BAKDRV% /mnt" ocs_prerun1="mount --bind /mnt/clonezilla /home/partimag/"
set RUN1=ocs_live_run="ocs-sr -q2 -c --batch -j2 -z1p -i 2000 -sc -p true savedisk ask_user %WDRV%"
#echo kernel /clonezilla/live/vmlinuz %BOPT% %RUN% %PRERUN% %RUN1%
#pause
root (0xff)
kernel /live/vmlinuz %BOPT% %RUN% %PRERUN% %RUN1%
initrd /live/initrd.img


title Restore a Disk Image to first Hard Disk (Clonezilla)\n Restores all partitions from an image.\n WARNING: THIS DESTROYS ALL PARTITIONS and FILES!
set ISO=%MFOLDER%/Clonezilla/clonezilla-live-20131125-saucy-i386.iso
set WDRV=sda
# Backup drive is always last drive
set /a HDCNT=*0x475 & 0xff
set /A BAKDRV=%HDCNT%+0x60
echo %BAKDRV:~1,9% | set dlet=
echo -e sd\%dlet%1 | set BAKDRV=
echo RESTORE DRIVE
echo -e =============
echo
echo IMAGE FILES will be looked for in the clonezilla folder on $[010f]%BAKDRV%
set /p ask=Press ENTER if OK or specify the linux name of the USB partition (e.g. %BAKDRV%) : 
echo
echo
if not "%ask%"=="" set BAKDRV=%ask%
set ask=
echo The drive to be written to (all partitions) will be $[010f]%WDRV%
set /p ask=Press ENTER if OK or specify the linux name of the target drive (e.g. %WDRV%) : 
echo
if not "%ask%"=="" set WDRV=%ask%
echo
echo You can check the drive names once CloneZilla has booted.
echo -e When Clonezilla starts, select <Cancel>
echo Then choose 'cmd' to get to the command prompt
echo Then type    sudo fdisk -l            to show all the drives in the system
echo or   type    sudo fdisk -l /dev/sdb   to show drive sdb parameters
echo
echo $[010f]%BAKDRV% WILL CONTAIN THE IMAGE FILES
echo $[010f]%WDRV%  WILL BE THE DRIVE TO BE RESTORED (all drive contents will be destroyed)
echo
echo $[010f]PLEASE NOTE: All partitions on drive %WDRV% will be destroyed.
echo
set /p ask=Press Y to continue (Y/N) : 
if not /I "%ask%"=="Y" configfile (md)0xa000+0x50
echo
set ask=
set HDCNT=
set dlet=
partnew (hd0,3) 0x00 %ISO%
map %ISO% (0xff)
map --hook
set BOPT=boot=live quiet live-config noswap nolocales edd=on nomodeset ip=frommedia ocs_live_keymap="NONE" splash
set RUN=ocs_live_run="ocs-live-general" keyboard-layouts="NONE" locales="en_US.UTF-8" live-media-path=/live toram=filesystem.squashfs ocs_live_batch="yes" 
set PRERUN=ocs_prerun="mount /dev/%BAKDRV% /mnt" ocs_prerun1="mount --bind /mnt/clonezilla /home/partimag/"
set RUN1=ocs_live_run="ocs-sr -c --batch -g auto -e1 auto -e2 -j2    -p true restoredisk ask_user %WDRV%"
#echo kernel /clonezilla/live/vmlinuz %BOPT% %RUN% %PRERUN% %RUN1%
#pause
root (0xff)
kernel /live/vmlinuz %BOPT% %RUN% %PRERUN% %RUN1%
initrd /live/initrd.img

title CloneZilla (boot directly from the ISO file)\n Boot from the ISO for advanced options
set ISO=%MFOLDER%/Clonezilla/clonezilla-live-20131125-saucy-i386.iso
partnew (hd0,3) 0x00 %ISO%
map %ISO% (0xff)
map --hook
root (0xff)
chainloader (0xff)

P.S. I am really excited this Christmas - I saw an advert on the TV last week asking people to 'adopt a Snow Leopard' - so I immediately subscribed. I have just had a large cat flap knocked through the conservatory wall and can't wait for it to arrive... I hope it's house trained!

Tuesday 3 December 2013

Boot from a USB drive using VirtualBox with full rd/wr access

It has been possible to boot directly from a USB drive attached to a Virtual Machine for several years now.

Plop!

One approach is to boot from a Plop ISO and then through Plop you can boot from the USB drive.

However, Plop employs a read-only USB driver stack and so only read-accesses to the USB drive are possible (when in real mode using BIOS calls) when you boot under a VM using Plop. For instance, if you boot to DOS using Plop you will find that you cannot edit/create any files on the USB drive.

Make a .vmdk file

Alternatively, you could make a USB drive vmdk file for VirtualBox to use, using a VBox command line or the MakeUSBVmdk.cmd script to make the .vmdk file for the USB drive. However, this still only allows read-only access to the USB filesystem under VirtualBox (until you boot to an OS which has it's own USB drivers).

VMUB

Download VMUB here (use the small link at the top of the page)



DavidB has solved this problem with his Virtual Machine USB Boot utility (see here for the original blog post which started the development of this utility). This allows you to boot directly from a USB drive using either QEMU or VirtualBox with full read/write access to the USB drive. It works by dismounting the USB drive from Windows, running the VM, and then re-mounting the USB drive when you quit the VM.

This is important for Easy2Boot users because Easy2Boot writes to sectors and files on the E2B USB drive using grub4dos (which uses the BIOS), so unless you have full read/write access, booting from an E2B USB drive via VirtualBox often leads to problems. Most of my YouTube videos and all my preliminary testing of USB booting is done using VBox and DavidB's utility.

Users of grub4dos USB drives may have noticed that the grub4dos 'default' command does not work under VBox when using just a .vmdk file or Plop! This is because the default command actually writes values to a file on the USB drive (usually called default). Using DavidB's VMUB utility however, the grub4dos default command will work just fine!

I have made a YouTube video here: http://www.youtube.com/watch?v=mvYkujvUXhc showing how to set up a VM for the VMUB utility. There is also a tutorial here.


Tip: Hold down the CTRL key and then click Start and VMUB will not dismount the USB drive before running VBox. This is useful if you are designing E2B menus (for instance) - you can still edit any file on the USB drive whilst VBox is running, then simply reboot (e.g. press F9 in E2B) and it will reboot with the new changes. There is no need to stop the VM and re-run it every time you need to change a file or two.

One thing to bear in mind is that the USB drive will be treated by any OS as a hard drive and not a 'Removable drive'. That means that you cannot use VBox+DavidB's utility to run a Windows 7/8 install from an E2B USB Flash drive as it won't pick up the AutoUnattend.xml file.

Also any OS that tries to look for the boot files only on a USB drive on a USB controller will fail to boot because the USB drive is attached to a 'virtual hard disk' in the VM. Luckily, most OS's scan all devices on boot-up, but a few linux distros specifically look for the source boot files on a USB port. In these case, the VM boot will fail and you will need to try a real system. Some linux distros specifically look for a real CD/DVD drive for the boot files - in this case, booting from an E2B USB drive, even on a real system will fail (the same distro will fail on ANY kind of USB drive, no matter how it was prepared!).

You also need to realise that access to the USB drive is not possible while the VM is running because the USB drive has been detached from Windows at that point (unless you hold down the CTRL key first).

Apart from this, I have found 99% of bootable ISOs, etc. boot just as well from E2B under VMUB as they do when booting on real hardware. If you do experience any problems with a particular payload, then you should test using a real system (try both USB 2.0 and 3.0 ports).