Monday 9 December 2013

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).

Saturday 30 November 2013

Easy2Boot v1.18 now available

v1.18 is now available for use and testing. Chenall has released a new version of grub4dos with some font bugfixes.
Aliums theme with 'Antique' font. 
The $FontTest.mnu menu file has been added so that you can test the appearance of the menu in any of the 36 fonts!


You may immediately notice two changes, the font in the menus will appear thinner and grub4dos 0.4.6a is now used instead of grub4dos 0.4.5c.

Here is a summary of the changes:

  1. grldr (grub4dos) 0.4.6a is now used. If you have a problem then try the latest v0.4.5c from here.
  2. The new versions (2013-11-30 and later) of grub4dos grldr fix a bug where the BIOS fonts are used instead of the loaded unifont font when a new menu is loaded. This means that the text you will see now in the menus will be in the unifont font and so it will appear different (thinner) than in older versions of E2B.
  3. You can now load any font by specifying a full path in your MyE2B.cfg file.
  4. 34 new font files are available in the \_ISO\docs\Fonts folder.
  5. The Aliums theme now uses the 'Antique' font.
  6. You can test out all the fonts by copying the $FontTest.mnu file from the  \_ISO\docs\Fonts folder to \_ISO\MAINMENU folder.
  7. You can specify that the BIOS font will be used by using 'set BIOSFONTS=1' in your MyE2B.cfg file. The characters used for normal ASCII characters will then appear as they did in previous versions of E2B (thicker).
  8. .isoDOS01 file extension supported (for Win98 and other DOS-based Install ISOs).
Please let me know if you find any problems. I will updated the E2B+DPMS download in a few days if I don't hear about any bugs.

As usual, to update your E2B USB drive, just overwrite all E2B files on the USB drive with the files in the v1.18 zip file.

P.S. RMPrepUSB is not yet updated with the new version of grub4dos. If you use the 'Install grub4dos' button in RMPrepUSB, it will install an older version of grldr and you will not see any font changes in the menu! Use the version of grldr that is contained in E2B v1.18  (or copy the new grldr file to the RMPrepUSB application folder so that RMPrepUSB always uses the new version of grldr).

Thursday 28 November 2013

Install Windows Server 2003 from an ISO using Easy2Boot


Today, just to see what would happen, I downloaded a Windows Server x86 32-bit Install image (X13-04874.img  Standard Edition Eval version) , renamed it to X13-04874.iso and placed it in the \_ISO\WINDOWS\XP folder on my Easy2Boot USB drive.
I then installed Server 2003 to a SATA hard disk on a Virtual Box VM using the DPMS2 XP drivers and it worked fine. The second CD had to be extracted onto the flash drive and then I ran Setup2.exe to complete the install.
It may not work for all systems as sometimes there are separate 2003 drivers required, but it seemed to work fine on the VBox Virtual Machine. Of course, unless installing to IDE disk drives, the 64-bit version of 2K3 would probably not work and most people would want the 64-bit version. E2B does not support XP 64-bit mass-storage drivers (and before you ask, I have no plans to do so!).

P.S. If you have a working USB Flash drive that will install Server2K3 x64, then you can convert it to a .imgPTN file and add the .imgPTN file to E2B.

Monday 25 November 2013

Changing the font in Easy2Boot

Note: Thanks to Wonko from reboot.pro, I have been able to generate some alternative font files for the ASCII character set (0x20-0x7e). The next version of E2B will have these fonts available in the \_ISO\docs\Fonts folder. 

The character after !" is the £ (0x00A3) character which is loaded by the unifont.hex.gz full font file.
If no font is loaded then £ is displayed as a 'ooA3' as small characters from the BIOS font. Most fonts display the 00A3 character as ú.


These fonts only contain characters 0x20-0x7E, but unifont.hex.gz contains all unicode characters including the A3 (£) font.

Sunday 24 November 2013

Install Windows 98SE/ME from an ISO with Easy2Boot

The new .isoDOS file extension that is recognised by Easy2Boot v1.17 and later versions, allows you to boot a DOS-based bootable ISO and access all the files on the CD-ROM portion of the ISO from DOS. It does this by making an empty virtual drive in memory and copying the contents of the ISO into it (under grub4dos) before it boots to DOS. DOS can then access the files on this virtual drive.



This method almost worked with a Windows 98SE Install ISO that I had. There were a few problems however...

First, there were just too many files inside the ISO for the grub4dos environment to enumerate! To fix this I simply deleted the unneeded folders from the Win98 ISO and just left the \Win98 folder inside the ISO file plus the [BOOT] folder (required for floppy-emulation booting) and the files that were in the root of the ISO (like Setup.exe). This reduced the ISO to 180MB.

The second problem was that the first disk drive seen by MS-DOS and the Windows 98 Setup install process was my E2B Flash drive. So when I tried to install Win98, it kindly made the 2nd FAT partition which I happened to have on my USB flash drive, active and put the DOS boots files on it!

It still booted to the internal hard disk, but only when I booted from my USB drive!
To fix this, E2B v1.18 will now recognise the new .isoDOS01 file extension. This does the same thing as .isoDOS but swaps over the USB flash drive with the internal hard disk so that DOS sees the internal hard disk as the first hard disk.

So, in summary, to get a bootable Win98SE Install ISO (e.g. OEM ISO, many others are not bootable) working with E2B (even an NTFS USB E2B drive), do the following:

1. Remove all extra folders from the ISO using an ISO tool - e.g. UltraISO or Daemon Pro so the boot sectors are still present (just leave the \Win98 folder and the files in the root).
2. Rename the iso to .isoDOS01
3. Use Easy2Boot v1.18 or later (it will be available in a few days...)

More details in Tutorial 117 on my RMPrepUSB site.


Update - Alternate Method

This method uses a .imgPTN file but we do not switch to it, we just map it as a large floppy disk image!

Note: If you prefer, you can use ImDisk to make a large floppy disk image, rather than use MakePartImage.

1. Drag-and-Drop the Win98/ME ISO onto the MPI_FAT32 Desktop shortcut. The OEM ISO should be bootable and contain a bootable floppy disk image , so use that one if possible.

Add at least 10MB to the default size as we are going to add some files to it and Windows Setup may also need temporary space.

Copy the .imgPTN file to \_ISO\DOS\MNU on your E2B USB drive (any menu folder will work except for \_ISO\WINDOWS\aaaa folders).

2. Use Switch_E2B.exe to 'switch in' the \_ISO\DOS\MNU\Win98.imgPTN file

3. Use 7Zip to open the Win98.ISO file and double-click [BOOT] and then the Boot-1.44M.img file - you should see the DOS boot files (including IO.SYS).

4. Extract all the DOS boot files to the root of the USB drive (which should be in the CSM mode).
Note: If you cannot see a \e2b folder in the root, then you did not do Step 2 correctly!

5. Use Switch_E2B.exe to Restore E2B Partitions  on the USB drive to get our E2B partition(s) back.

6. Make a new \_ISO\DOS\MNU\Win98.mnu file with the following contents:

title Install Windows 98 using .imgPTN file\n Install Win98
map $HOME$/Win98_SE.imgPTN (fd0)
map (hd1) (hd0)
map --hook
#set just one HDD and one floppy
map --harddrives=1
map --floppies=1
root (fd0)
chainloader /IO.SYS

This can be found in the \_ISO\docs\Sample mnu Files\Windows folder on later versions of E2B.

E2B v1.99+ now supports the .imafdhdd0 file extension which does the same as above, so just rename the .imgPTN file to .imafdhdd0 (and no need for a .mnu file). Place the file in the \_ISO\DOS folder so it can be seen in the DOS menu.

7. Boot from E2B and choose the DOS Install Windows 98 menu entry.
Choose the MS-DOS  'no CDROM support' option.

At the A: prompt, run FDISK and set up a FAT partition on your C: drive (IDE hard disk) with an Active boot flag.

8. Reboot to E2B and re-run the DOS Win98 menu.

At the A: prompt type
CD \WIN98\ENA            (or whatever folder the correct Setup.exe file is in and FORMAT.COM - the one in the root may not work!)
FORMAT C: /Q
MKDIR A:\TEMP           (may not be required)
SETUP

(skip the 'create floppy startup disk' option but don't cancel it or Setup will quit!)

Tips: If testing on a VM, configure an IDE virtual disk in a Win98 VM and disable VT-x\AMD-V (at least for the Setup process).

Do not configure more than 900MB of RAM or Win98 may crash!


Thursday 21 November 2013

Defining fonts in grub4dos

Chenall's grub4dos versions have the ability to load a GNU Unifont hex file using the inbuilt 'font' command. Easy2Boot uses this feature to load the unifont.hex.gz font file.
It seems there are a few bugs with this and chenall is hopefully going to fix this very soon (see issue 160). [Edit] Use grub4dos v0.4.5c 2013-11-30 or later[/Edit].

The normal way to use this is to switch to graphicsmode and load the font file, e.g. a UTF-8 format menu.lst file like this can be used:

graphicsmode -1 800
font /unifont.hex.gz

title reboot (重启)
reboot

However, we can also define hex fonts within a menu. The following menu will work without needing to use the font command or use a unifont file:

# font demonstration

graphicsmode -1 800

title test grub4dos font (GGGgggGGG)\n reload the menu
configfile /menu.lst

title Reset to BIOS font (use left/right cursor keys to select this menu item)
font

title reboot (重启)
reboot

title halt (关机)
halt

# Define specific UTF-8 fonts just by adding them to the end of the menu.lst file

# 4 chinese glyphs
5173:10100810082000003FF8010001000100FFFE010002800280044008203018C006
542F:010000801FFC1004100410041FFC10001000100017FC24042404440487FC0404
673A:100011F011101110FD10111031103910551055109110111211121212120E1400
91CD:001000F83F000100FFFE01001FF011101FF011101FF001003FF80100FFFE0000
# g character - ASCII code 67 hex
0067:0000000000023A44444438203C42423C









Note that the four chinese characters are displayed correctly and also the letter g is in a different font.
Each glyph has a unicode hex index number - you can look them up on a chart here
Standard ASCII characters are in the Basic Latin (ASCII) chart.

The font command will overwrite any existing ASCII font with the font contained in the BIOS, thus selecting the 2nd menu item will cause the g to be displayed in the standard font but the four chinese glyphs will be unaffected (as they are not part of the BIOS font table).

Note: If you try this yourself using an October/early November 2013 version of grub4dos, you will find that the g character will not be changed due to a bug in grub4dos. Hopefully, chenall will release a new version to fix this issue soon.

This feature means that you can define your own special characters if you wish, without needing to use a hex font file. If you only need a few special characters, you can just use the relevant lines taken from the unifont.hex file (extracted from unifont.hex.gz).

For instance, you can redefine the letter g as a series of vertical lines using:

0067:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

As the hex byte AA is 10101010 in binary, we get 4 vertical lines per characters, like this:





Of course, you can use a different character code such as 0024 for $ rather than 67 for 'g'.

Note: The latest versions of Easy2Boot contain a variety of grub4dos font files for the standard 'Basic Latin' 0x20-0x7E characters.

Wednesday 20 November 2013

Adding WinBuilder ISO files to Easy2Boot

If you have an ordinary WinPE ISO file on your Easy2Boot USB multiboot drive, you can make it automatically load the ISO file as drive Y: if you rename the file with a .isoPE or .isoPE01 file extension (more info here). However, PE ISOs are only mounted as a virtual drive when wpeinit runs, which for most WinBuilder PE builds is too late! So if you use a .isoPE extension for your WinBuilder PE ISO, you may not see all the Desktop icons (but the ISO will be loaded as drive Y: eventually by E2B).

Many WinBuilder builds have a \Windows\System32\winpeshl.ini file which typically runs some early Desktop initialisation utilities before the Easy2Boot unattend.xml has a chance to run and load the ISO as virtual drive Y: - e.g.

[LaunchApps]
MountPEmedia.exe
"hide /NOCONSOLE /SILENT /WAIT start.cmd"
"Shortcuts.exe -f %SystemDrive%\Windows\System32\Win7PE.cfg"
"PinTool.exe -debug %SystemDrive%\Windows\System32\Win7PE.cfg"
"X:\Program Files\PEShell\PEShell.exe"

Luckily (actually, probably luck had nothing to do with it!) most builds of WinBuilder have a special feature which will load the ISO file automatically as drive Y: on boot, if an .INI file is found.

For example, if you have made a recent WinBuilder Win7PESE ISO, just place a file in the root of the E2B drive called Win7PESE.ini with the path and filename of the ISO - e.g.

[IsoInfo]
IsoName=\_ISO\MAINMENU\Win7PE_x86.ISO


The filename may vary depending of what PE build you are using. The .ini file will cause the WinBuilder PE to load the ISO as drive Y: when MountPEmedia.exe runs. Consult the documentation for the exact INI filename that is required (click the yellow warning triangle that appears on the PE Desktop when drive Y: is not found).