Booting Acronis TrueImage from USB even when your BIOS does not support USB boot
I recently acquired an ancient laptop where the DVD/CD-RW drive has died. This makes it difficult to boot from a Acronis TrueImage recovery disc. While you can install the Acronis TrueImage recovery on a USB key, the laptop is too ancient to boot from a USB key. Usually, if you want to boot from USB, you have to have boot from USB in the BIOS.
Acronis TrueImage runs on top of Linux. Various distros like Puppy Linux, feather, and Damn Small Linux comes with helper floppy that allow you to boot from a USB key even when boot from USB is not supported in the BIOS. Can we use the same helper floppy to boot Acronis TrueImage recovery USB key? The answer is yes.
How does it work?
If you have the ability to boot from USB in your BIOS, the BIOS contains drivers to boot from your USB drive. However, the BIOS is just a transitional phase. All the BIOS does is load the OS from the USB drive. Once the OS is loaded, the BIOS role is over. This mean the OS is independant of the BIOS. Suppose the OS has no USB support, the OS will not be able to access the USB drive even if you have loaded it from the USB. The reverse is also true. If your OS has USB support, but the BIOS does not have USB support, the OS will not be able to boot from USB.
The helper floppy serve the same role as the BIOS. The helper floppy loads a small OS with USB support to gain access to the USB drive, so it can load the bigger OS. Once the bigger OS is loaded, the boot OS disappears entirely.
After looking at the various boot floppies, the Puppy OS seemed the most promising. It is essentially a FreeDOS floppy that loads the USB drivers and then use a program call linld to load the Linux OS.
Creating a Floppy to USB Acronis TrueImage system
Here’s how to create the system.
- Run Acronis TrueImage and select the option to create a recovery disk. Select the USB drive as the destination drive to write to.
- Download the WakePup program. I am using WakePup 2.02.
- Unzip the WakePup zip file. There should be a MakeDisk.bat file. Run it and you’ll be prompted to insert a floppy disk into the A: drive. This will create a WakePup boot floppy.
- Edit the Autoexec.bat file on the boot floppy. Normally, this file is invisible, but you can make it visible by setting the folder options to show hidden files and uncheck the hide operating system files. It is designed to load Puppy Linux, which means it will look for Puppy related files. We will modify it to look for bootwiz instead, then we’ll modify the linld arguments to load Acronis TrueImage. Note that the ramdisk_size is important. Without it, the kernel won’t load properly because the default ramdisk size is too small. Here’s the entire modified file:
rem wakepup2 0.2 (C) 2006, Paul Akterstam ('pakt' on Puppy Linux Forum)
rem Boot diskette for Puppy 2.xx series. For Puppy 1.xx series, use wakepup
rem This version for IDE/USB drives (built-in or external CD-ROM, HD and flash)
rem Inspired by Barry Kauler's BOOT2PUP (http://www.puppyos.com)
rem Except for the drivers, uses only GPL'd software or freeware
rem Requires FreeDOS & FreeCOM
rem This program is distributed in the hope that it will be useful, but
rem WITHOUT ANY WARRANTY; without even the implied warranty of
rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
rem General Public License for more details.
rem The GNU General Public License is available from http://www.fsf.org/
rem or, write to the Free Software Foundation, Inc., 59 Temple Place,
rem Suite 330, Boston, MA 02111 USA
echo *** wakepup2 0.2 by pakt - Boot Puppy2 Linux from IDE/USB drives ***
rem Pause here so USB driver messages can be read...
echo Pausing for driver messages. Press any key to continue or Ctrl-C to abort...
pause >NULrem Init
set drv=rem Using SHSUCDX.COM 3.03, a freeware replacement for MSCDEX.EXE
rem Assign 1st IDE-CD to drive X:, 2nd (if found) to drive Y: and USB-CD to drive Z:
driver\SHSUCDX /D:?IDE-CD,X,,2 /d:?USB-CD,Z,,1 /QQ
echo Checking any IDE drive for marker file BOOTWiZ.sys...
for %%x in ( C D E F G H I J K L M N O P Q R S T U V W ) do if exist %%x:\bootwiz.sys set drv=%%x:
if "%drv%"=="" goto failed
echo ...file found on drive %drv%
echo º Select Puppy2 boot option º
echo º º
echo º 1. acpi=on Default for newer PCs (made 2002 or later) º
echo º º
echo º 2. acpi=off For older PCs, or use if acpi=on causes problems º
echo º º
echo º 3. acpi=force Needed to force acpi=on on older PCs º
echo º º
choice /C:123 Please choose :
if "%errorlevel%"=="1" set acpi=acpi=on
if "%errorlevel%"=="2" set acpi=acpi=off
if "%errorlevel%"=="3" set acpi=acpi=force
set append=root=/dev/ram0 ramdisk_size=40000 init=linuxrc %acpi%
LINLD.COM image=%drv%\dat4.dat initrd=%drv%\dat3.dat "cl=%append%"
- Insert the USB key and the floppy on the machine and have it boot from floppy. It will load config.sys and load the USB drivers. Autoexec.bat will run and look for bootwiz.sys and then load the Acronis TrueImage.
- If everything works correctly, you should see the drive boot. Instead of getting the Acronis screen, you’ll get a prompt. This is because Acronis runs on top of Busybox and you are at the command prompt. To get the Acronis TrueImage application, type “product” and press return. I haven’t figured out how to get it to boot directly into the product.
What can go wrong?
The boot floppy is not perfect. It loads a set of DOS drivers that should give you access to the USB drive, but it doesn’t work with every hardware. While it worked with a majority of the machines I own, it did not work with a eMachine T1221. The DOS driver was unable to detect the USB.
In those situation, you may have to experiment with loading different USB DOS drivers until you find one that works.