Friday 2 September 2016

Using E2B with Zalman\IODD disk drive enclosures (is the IODD 2531 the best USB HDD enclosure for E2B?)

As you know, E2B keeps its menu folders under the \_ISO folder.

The folder name of \_ISO was not a random decision on my part, it was chosen because the drive emulation disk enclosures made by IODD and Zalman both use the \_ISO folder to store payload files.

Keep reading to see how you can use the features of these devices to enhance E2B!

For those of you that don't know, with these HDD enclosures, you can select one or more payload files, and they will be emulated as a USB device.

Zalman ZM-VE200

For instance, if you select Ubuntu.iso, then any system that the HDD enclosure is connected to, will 'see' a USB CD/DVD drive containing the Ubuntu ISO file contents, just as if it were accessing a real CD/DVD drive containing a real CD\DVD (except much faster)!

Now, I recently purchased a Lenovo IdeaPad 300, and decided to try my old Zalman ZM-VE200 out on it. I found that IdeaPad 300 did not respond too well when trying to boot from an ISO loaded as a virtual CD into the Zalman VE200. It looked like the Zalman could not load the ISO quickly enough on power-on, so the IdeaPad BIOS did not detect it (even when using an SSD HDD).

Since the Zalman ZM-VE200 is USB 2.0 and therefore not very fast, and also had this issue, I decided to purchase a new emulation HDD enclosure. My choices were:

Unencrypted - IODD 2531 (SATA3) or Zalman VE300 (SATA2) or Zalman VE350 (SATA3 compatible)
Encrypted     - IODD 2541 (SATA3) or Zalman VE400 (SATA2) or Zalman VE500 (SATA3 compatible)

I have read some Amazon reviews that the Zalman VE350 is a poorer-quality version of the VE300 and the VE500 is a poorer-quality version of the VE400 as they are made by a different manufacturer (not IODD). The Zalman documentation is poor. It does not mention support for VHD, RMD, DSK for instance even though I think they are supported by the Zalmans.
Cases are usually available in both black and silver finishes.

I decided to plump for the IODD 2531 because I did not particularly need to have the HDD encrypted (and they are a bit of a pain to use for quick testing because you have to enter in the PIN code each time you connect them) and because, from reading some reviews, the IODD's were supposed to be better supported.

A disadvantage of the Zalman VE200 was that to change firmware from a FAT32\exFAT supporting version to a NTFS supporting version was a real pain, because the firmware was in the form of an ISO file which had to be loaded from the Zalman's HDD. This meant that if I had an NTFS drive and I loaded the FAT supporting firmware from it, as soon as the new firmware was loaded, I could no longer access any files (including the NTFS firmware update ISO!) on the drive. So to go restore the NTFS firmware, I had to re-format the drive, copy over the update ISO and then load it, then re-format the drive again to NTFS. Later version of the Zalmans also have a Windows application for updates.

In contrast, the IODD drives have a Windows firmware update  utility. So I can quickly change firmware. This saves having to copy the file on after formatting the drive and having to select it on the jog switch each time too.

In addition, the IODD firmware was reported by users to be better than the Zalman firmware and had more complete documentation. Also the hardware and display was rumoured to be better.

IODD 2531

IODD 2531 (black version, not in case)

Let's get the niggly details out of the way first.

Not impressed by:
  • Not a screwless enclosure
  • The tiny screwdriver supplied
  • The cheat-sheet card supplied was too big to fit in the supplied enclosure case (unless it was folded). A self-adhesive plastic coated card that I could stick to the back of the enclosure would have been a lot more useful! It even says 'reconnect the iodd-2541' on the back of the card which is for the 2531!
  • Foam case - no cut-out for the screen, very tight fit (at least it won't fall out!), 1 cm too short but not short enough to see the LCD, no pocket for USB cable (which is kind of important to take with you!). I can always buy a suitable carry case though like this one.
  • No USB Y-cable provided (for extra power if needed on some USB 2.0 notebooks).
  • The real internal HDD always appears as Fixed Disk (though you can load an image file and emulate a Removable disk)

I was impressed by:
  • Build quality
  • Useful 1m white USB 3.0 cable (branded Samsung)
  • Speed (seq. rd=272MB/s, seq wr=198MB/s - tested using SSD drive)
  • Good website with utilities (for creating VHDs and updating firmware), manuals and docs, etc.
  • As well as a jog switch, there was also a 'Function' button on the 2531.
  • I didn't use the screws and just kept it in the foam case. 
  • Settings - Information - Voltage displays current voltage reading but also lowest voltage reading - the lowest voltage reading is useful because it tells you if you need a USB Y-cable if you get a reading below 4.5V!

The main thing was that it did work with the Lenovo IdeaPad300.

When you select a payload file using the jog switch, the 2531 automatically saves 'status' so that it will load the same payload file(s) when it is next powered-up (as did the Zalman VE200).

The IODD 2531 can recognise and load the following file extensions:

.VHD, .VMDK, .DSK - appears as fixed disk (HDD disappears, can set to dual-mode but HDD is write-protected - but see below)
.RMD - appears as Removable disk  -  (HDD disappears, can set to dual-mode but HDD is write-protected - but see below)
.IMA - appears as a floppy disk
.ISO - appears as a CD/DVD

up to 4 virtual drives can be supported at the same time.

The IODD 2531 also supports two special filename suffixes:  &DW (dual+write) and &D (dual), this works for the VHD and RMD file types above, for example, Win8PE.RMD is an image of a removable USB drive

  • Win8PE.RMD           - appears as virtual, writeable removable drive - real HDD dismounted
  • Win8PE&D.RMD      - appears as virtual, writeable removable drive - real HDD Write-protected
  • Win8PE&WD.RMD  - appears as virtual, writeable removable drive - real HDD rd/wr

A maximum of 32 files and folders are allowed in each folder (for the NTFS firmware). So you must not exceed 32 files+folders in each folder under \_ISO if you want to be able to select them in the IODD 2531 menu system.

Also, VHD, DSK and RMD files need to be contiguous or you will get a 'defrag' error message. Just use the E2B 'Make_this_drive_Contiguous.cmd' file.

After copying files onto the hard disk, press and hold the top function button for 5 seconds, so that the firmware re-enumerates the files. This will also cause it to dismount any loaded images.

.RMD images are useful if the payload must run from a removable drive (such as Hitman Pro). Copy any 32MB or larger file to \_ISO. Rename it as Hitman.RMD and load it into the IODD 2531. Format it as FAT16 using RMPrepUSB. Run the HitManPro USB creation app (app. does not work on Win10x64 >> #50,partitions error, but OK on Win8x64).

When loading a Windows 7 ISO, WinPE7 could not detect any USB device was connected to the IdeaPad 300 USB 2.0 ports (but it was detected OK on an EeePC). This is probably a Win7 USB driver compatibility issue and not the fault of the IODD.

One use for the .IMA feature, is that you could load both an XP ISO and a F6 Floppy driver .ima disk image file for installing XP (untested).

Tip: Power-on issues

Sometimes a device such as a ChromeBook may boot so quickly that the IODD firmware or internal HDD has not loaded the ISO and so the ChromeBook fails to see an 'external DVD'. You can work around this by using a USB-A Y-cable and connect a portable battery pack to the IODD, then select the ISO and then switch on the ChromeBook.

Using the IODD 2531 with Easy2Boot

Of course, you can just use the jog wheel on the 2531 to select any ISO from any of the \_ISO\xxxxx menu folders on the HDD and boot from them. This includes UEFI-booting if the ISO supports it. You can also load any bootable VHD.

However, if you boot to E2B directly from the HDD, you can do lots more things:
  • Run linux with persistence
  • Install Windows XP to a SATA\RAID drive using E2B+DPMS
  • Install Windows 7/8/10 using an unattend XML file
  • Install Windows 7/8/10 using an unattend XML file with SDI_CHOCO
  • Boot to multiple fully-installed linux OS's
  • Boot to any Win 7/8/10 VHD (VHD does not need to be bootable)
Note: if you switch to a .imgPTN file, if you re-connect the 2531, you will see on the integral LCD display a '1st Partition : C' error (meaning it sees a FAT32 partition - type 0C hex) or a 'NO _ISO Folder' error (meaning it found an NTFS partition but no \_ISO folder).

If we fully utilize all the features on the IODD 2531, we can enhance E2B functionality, here are a some ways...

1. Emulate a WinHelper USB flash drive

Before booting from the IODD 2531 to E2B, use the jog switch to load the file:


Now E2B will 'see' a removable USB drive containing the WinHelper flash files, so we can install Windows using Windows 7/8/10 ISOs without needing to connect an extra flash drive to the system. Neat eh?

Virtual USB Flash drive, USB CD and real USB HDD appear as boot options.

E2B v1.84+ will contain the file:
From this file you can extract E2B_WinHelper_&DW.RMD.

2. Boot to WinPE and run WinNTSetup (with write-protected real HDD)

If you want to boot to UEFI-boot and install Windows 7/8/10 using WinNTSetup, then instead of switching to a .imgPTN file (which may not be possible if you have no Windows system available) and then booting to that UEFI image, you can just load the IODD 2531 with the WinPE file (ISO file or VHD or .DSK).

This means you can boot straight to UEFI WinPE and run WinNTSetup directly from the real HDD.
You will need to use the &D filename suffix (e.g. WinPEx86_&D.ISO or WinPEx64_&D.iso) so that the real hard disk is also accessible but write-protected.

If you want the real HDD to be write-enabled, use a &DW suffix - e.g. WinPEx86_&DW.VHD or WinPEx64_&DW.VHD

You can, of course, MBR-boot in the same way and have a write-protected real HDD. For instance, you could safely test any WinNTSetup diskpart scripts without fear of zapping the real HDD inside the IODD 2531 (though you could zap the VHD file).

You can choose one of the SDI_CHOCO XML files from the E2B \_ISO\WINDOWS\xxxxx folders and run an automated installation if you wish.

Note: If you load an .ISO file into the IODD 2531, the real HDD will not be write-protected unless you press-and-hold the top function button whilst you connect it (or use the Advanced menu via the jog switch). The padlock icon will tell you the state of the real HDD (locked symbol=wp, unlocked=write-enabled).

3. Make a virtual E2B Removable USB drive

The IODD appears as a Fixed Disk, but E2B works best on a Removable drive (or else you need to add a Helper flash drive).

If you make an image of a complete E2B USB drive as a .RMD file, the IODD can load it as a removable USB drive. You can then edit it, add payload files, etc. just as if it was a real flash drive.

You can use RMPrepUSB to capture a raw image of any E2B USB drive. The size of the USB drive will determine the size of the image file.

RMPrepUSB - Drive->File - <E2B.RMD> - start=0 - end=PALL* - filestart = 0

*Note that for best bootability, you should capture both the first E2B partition and the hidden small partition that was made by the E2B make script by using PALL. 

Copy the E2B.RMD file to the IODD hard disk (e.g. \_ISO\E2B.RMD).

When you load the E2B.RMD file into the IODD, it will create a rd\wr virtual E2B drive, but the whole real HDD will be hidden. This means that the worst damage you can do is to destroy the E2B image file, but all other files on the HDD will be inaccessible (or you can make them accessible but write-protected). It also means you can test E2B as a removable USB drive.

If you use a .DSK file extension, then the E2B USB drive will appear as a Fixed disk.

If you add a &DW suffix (e.g. E2B&DW.RMD) then the whole HDD will also be accessible and not write-protected (or use &D if you want it accessible but write-protected).

Note that E2B cannot handle payload files that are on a different drive (because of the way it uses the grub4dos partnew command to make partitions on the E2B drive, so the payload file must be on the same drive). Also, it needs a write-enabled drive, so you cannot enable write-protection on an E2B drive without severely limiting its function.


So far, the IODD 2531 has behaved exactly as expected.
The firmware does indeed seem to be more polished than the ZM-VE200, the documentation is better, and so are the utilities (though the VHD utility looks a little rough round the edges).
It is not as fast as the Inateck FE2007 UASP HDD enclosure but it seems to work well.

The trick of loading an .RMD file as a WinHelper flash drive is useful.

I have not tested the IODD 2541 version which can encrypt the HDD. This may be slower, but one would hope that it does not suffer from the 'reset on boot' issues that plagues the encrypted flash drives such as the datashur Pro/Aegis and Netac U618. Leave a comment if you have a 2541 and let me know if it resets when booting to Windows or linux.

Tip: When you have finished using the IODD\Zalman or any HDD enclosure, always unplug the USB cable from the enclosure. If you leave the cable connected, it can cause excessive strain on the USB port during transportation. Many users have reported that this damages the internal PCB or the USB port and so they had to buy another one!

P.S. You may also want to look at the StarTech enclosure which allows you to have a maximum of 3 ISOs (my review here).


  1. If I use a SSD with the IODD drive does VHD, DSK and RMD files need to be contiguous also or it apply only to mechanical drive?

    If the answer is yes could you explain me why it would be needed even with SSD ?

    Regards. ☺️

  2. Hi, I think that the files would need to be contiguous. You can see from the VHD Tool linked to in the blog post that the Tool makes a 'continuous fixed VHD'
    I think the way in which it works is that the start of the file is treated as the start of a partition. Now you cannot have a partition with gaps in it! A partition start at sector xxx and the end of the partition is at sector yyy and there can be no gaps in-between.
    An operating system would see a real partition on the disk, with an MBR and a partition table entry. The partition starts at xxx has a length of yyy-xxx+1 - it would expect to be able to format that partition in any way it wanted to and use every sector between xxx and yyy. So the VHD file starts at xxx and ends at yyy too and must be contiguous.
    It doesn't matter what type of media it is.

  3. Thanks I understand better now, I bough an IODD drive and was making a structure with files/folders on my HDD that will also serve as a backup.

    In my IODD drive I use a SSD so since usually technically you don't need to defrag a SSD I was asking if I transfert some VHD on the IODD drive I would need to defragment the VHD after the copy on the IODD.

    I think I will use the "old" Defragler from Piriform since it have a fonction to defragment only the files you want to minimise the wear on the SSD.

    Regards 😃

  4. Reading all i understand IODD do not support dynamic VHD, or does it?

    And what about VHD trees? A base VHD and two or more diferencing VHDs whoose base is that main base VHD, like snapshots, inmutable+differencing, etc

    VHD trees, for who do not know what are, are a hierarchical structure of VDHs with childs and parent relations between them, mainly used as snapshots, inmutable states, back in time, or to have a base Operating System, and multiple descendants each one with its own software installed, etc.

    Just a plain .VHD file? That is just as the trick or renaming a file as RAW, ISO, etc and do a loop mount... and that can be the real reason for it to be contiguos... loop mounting such files.

    So the two main questions seem to be very clear:

    * Dynamic VHD? No, because they can not be seen as a sequence of blocks (for loop mount)
    * Trees of VHDs? No, because they ... same as before.

    By the way: Windows 7 and Up can nativly create and use VHD (also with dynamic size) and with a little trick (on creation time) it can also use parent-child trees of VHD in native mode, also on Home versions, with disk managment you can mount a diferencing VHD from a child VHD and changes go to that diferening child instead of the parent, all natively.