On 2016.03.06 23:25, Shao Miller via Syslinux wrote:> Having typed that, perhaps we could discuss your (or Rufus') specific
> needs, in parallel?
I think that is probably worthwhile, as I wouldn't mind having a second
opinion from Syslinux developers on whether my current ISO -> USB
conversion process could be improved.
> Do I understand correctly that the primary
> challenges with Syslinux versions come from the fact that you are taking
> some Syslinux pieces from an .ISO and hoping to implement them on a USB
> disk? If so, what is it that leads you to the need to download
> corresponding COMBOOT32 modules for a particular Syslinux? Are they not
> in the ISO?
It's probably best to use a real-life example for that, so, since I was
talking about tails before, I'm going to use the tails-i386-2.0.1.iso to
illustrate what I'm currently doing in Rufus. I'll skip the EFI part of
tails (that uses grub/EFI) to talk only about the BIOS/Syslinux part.
If you look at the /isolinux/ directory from that ISO (the content of
which you can also see in the attached log), you see that it contains an
'isolinux.bin', along with an 'isolinux.cfg' as well as a set of
modules, including 'ldlinux.c32', 'vesamenu.c32' and so on.
Also, if you
look at the content of 'isolinux.bin' on that ISO, you'll see that
it
identifies itself as "ISOLINUX 6.03 20150819", which presumably means
that it's the official 6.03 Syslinux release (as that was released in
October 2014), with possibly a few custom patches added, or at the very
least, the version string customized to say YYYYMMDD. I have to say I
haven't really tried to look at how tails are compiling the Syslinux
binaries they use, but one thing I know is that even if they are using a
pre-release, the only version you'll get from a tails 'isolinux.bin'
is
"major.minor YYYYMMDD", with no explicit mention of the pre level
(unlike what is the case with the official Syslinux pre binaries).
Now, as you probably expect, the first thing Rufus does to convert an
ISO to USB is extract all the files from that ISO, using the same
directory structure, onto a FAT32 formatted USB.
Obviously, 'isolinux.bin', which I understand is the part that the
El-Torito image calls, that loads the main 'ldlinux.c32' module, and
then processes the config file and loading of additional modules, is
designed for CD boot only and cannot be reused for USB-HDD boot
purposes, which is what we need.
So, one thing Rufus will need to do is find a "replacement" part, that
serves the same purpose as 'isolinux.bin', but that is compatible with
USB-HDD boot. And as far as I know, the only replacement we can use here
is 'ldlinux.sys', which, since we cannot get it from the ISO, we have to
get from somewhere else.
So, one way of doing that, is embed the required 'ldlinux.sys' in Rufus,
which we actually do for the 6.03 release. Then, if as part of your
ISO->USB conversion process you install both this embedded
'ldlinux.sys'
along with the Syslinux MBR, you may expect your USB to boot.
The one last thing required at that stage is create a 'syslinux.cfg' on
the root of your drive, that calls on 'isolinux/isolinux.cfg', as
follows:
---------------------------------------------------------------------
DEFAULT loadconfig
LABEL loadconfig
CONFIG /isolinux/isolinux.cfg
APPEND /isolinux/
---------------------------------------------------------------------
So, installing an 'ldlinux.sys' and creating a new config file (if
required) is the essence of what Rufus does when converting an Isolinux
bootable image to a Syslinux bootable USB drive.
*HOWEVER*, this only works provided the 'ldlinux.sys' we install is
compatible with the 'ldlinux.c32' and the other modules that are present
on the ISO, which as I mentioned previously, is not something that is
expected hold true between different major.minor versions of Syslinux,
or even between the same major.minor, but different pre versions of
Syslinux, and this is where versioning comes into play...
That is because, as far as I know, and ever since the 5.x branch,
'ldlinux.sys' and 'ldlinux.c32' are set to form a close binary
system,
and aren't really designed for "mix-n-match". So (and this is what
we
empirically found out with tails) trying to use a 6.03-pre19
'ldlinux.sys' with a 6.03-pre1 'ldlinux.c32' module will produce
an
error for instance. And even if 'ldlinux.c32' was to work, there's
no
guarantee that other modules will...
One solution to avoid that would be to embed in Rufus all possible .c32
modules from Syslinux, alongside with the 'ldlinux.sys' version we have,
and replace them on the USB. This is not very realistic however (the
application size would explode, and as more version of Syslinux get
releases, we'd have more modules to embed), meaning that, instead of
trying to provide our own modules, we should try to find a way to
identify an 'ldlinux.sys' binary that matches the version (including the
pre level) of the Isolinux that is present on the ISO, and provide that.
Considering that we already have a server, and the ability to download
files from it from within Rufus, getting an 'ldlinux.sys' shouldn't
be
too much of an issue. So the problem is with making sure we pick the
right binary.
Now, as far as I could see, the .c32 modules are compressed and, until
fairly recently (which means that this wasn't the case when I was
devising this solution), there was no decompression support in Rufus. So
this means that, unless there's a specific _uncompressed_ location in
the .c32 modules (preferably 'ldlinux.c32' since that's the one that
should always be present) where we can fetch a full Syslinux version
(including the pre #), we'll need to process the one uncompressed binary
we have at our disposal that contains a version, and that is
'isolinux.bin'.
When using official binaries/unmodified source, this version will be set
to something like "ISOLINUX 6.03 2014-10-06" (release) or
"ISOLINUX 6.03
pre20" (pre). So this is what we'll use in Rufus to identify the
matching version of the 'ldlinux.sys' we should fetch, and in parallel,
we make sure that we create a set of matching /syslinux-6.03/2014-10-06/
and syslinux-6.03/pre20/ on our server, with the relevant 'ldlinux.sys'
binaries.
Or, to be more precise, the way the download actually works is as follows:
1. Split the version we got from 'isolinux.bin' in 2 parts:
'<major>.<minor>' and '<additional>'
2. Look for a
"/syslinux-<major>.<minor>/<additional>/ldlinux.sys"
file
on the server.
3. If this file exists, use that.
4. If the file doesn't exists (404), fallback one directory up to look
for a "/syslinux-<major>.<minor>/ldlinux.sys" file and use
that.
(NB: We also download the .bss we use through same process, just in case)
The benefits of doing it this way are that:
1. We can effortlessly become compatible with yet-to-be-released
versions of Syslinux, by installing the new files on the server, on
release day.
2. There's a reasonable chance that even if someone modifies the
additional version part, we'll manage to download a compatible version,
as they're likely to use a release or latest pre, and the fallback
should either pick the release or most recent pre.
3. We can use symbolic links to address corner cases we know of or that
are reported to us.
With regards to #3, this is useful in the case of the '20131220' extra
version that was used on the tails 1.1 ISO, as, at the time, the most
recent 6.03 pre was pre19, whereas the version used by tails was closer
to pre1 (since pre2 was released after 20131220). After having found
that the 6.03-pre19 'ldlinux.sys' fallback binary from our server was
incompatible with tails 1.1, all that was needed to make it work was
create a 20131220 symbolic link that pointed to pre1 (see
http://rufus.akeo.ie/files/syslinux-6.03/).
I know this is a pretty long overview, but I hope this gives a
comprehensive idea of the conversion process being used by Rufus, and
how this relates to Syslinux versioning.
I am also attaching a typical rufus.log, where you can see some of the
elements I described above, such as the version detection:
---------------------------------------------------------------------
ISO analysis:
Image is an ISO9660 image
Will use '/isolinux/isolinux.cfg' for Syslinux
Detected Syslinux version: 6.03/20150819 (from
'/EFI/BOOT/isolinux.bin')
---------------------------------------------------------------------
Download of 'ldlinux.sys' (and ldlinux.bss) from the server, with
fallback:
---------------------------------------------------------------------
Downloading 'ldlinux.sys' from
http://rufus.akeo.ie/files/syslinux-6.03/20150819/ldlinux.sys
Unable to access file: 404
Extended version was not found, trying main version
Downloading 'ldlinux.sys' from
http://rufus.akeo.ie/files/syslinux-6.03/ldlinux.sys
File length: 68599 bytes
Successfully downloaded 'ldlinux.sys'
Downloading 'ldlinux.bss' from
http://rufus.akeo.ie/files/syslinux-6.03/20150819/ldlinux.bss
Unable to access file: 404
Extended version was not found, trying main version
Downloading 'ldlinux.bss' from
http://rufus.akeo.ie/files/syslinux-6.03/ldlinux.bss
File length: 512 bytes
Successfully downloaded 'ldlinux.bss'
---------------------------------------------------------------------
Now, I'll be the first to reckon that there are some elements in that
process that are rather fragile (relying on 'isolinux.bin' to provide us
with the version, or trying to match a custom version string with a pre
level) so it's likely that some things that could be improved. But I
have to say this process does seem to have worked fairly well so far.
And to come back to the original topic, that deals with improving
versioning in Syslinux, my one wish for would be to have a way to always
locate an actual "pre" number, even if the user changed the version
string, in an uncompressed part of an Isolinux binary (be it
'isolinux.bin' or 'ldlinux.sys'). Or maybe that's something
that's
already possible, but that I'm not aware of...
Regards,
/Pete
PS: One thing that would be awesome for Rufus is if, in a future version
of Syslinux, 'isolinux.bin' and 'ldlinux.sys' could be merged
into a
single binary, with a different behaviour for CD and USB-HDD boot (which
I suppose should be doable since I expect the El-Torito initial loader
to be able to provide some kind of parameter, that would tell this dual
binary whether to start executing CD mode). This way, users would no
longer have to download anything, and all Rufus (or other tools) would
have to do when converting an ISO to USB, would be to reuse the
'isolinux.bin' already present as an 'ldlinux.sys', and that
would also
take care of all the module incompatibility issue.
I may actually try to look into that, but this is another "if I ever
find the time" thing...
-------------- next part --------------
Rufus version: 2.7.855
Windows version: Windows 10 64-bit (Build 10586)
Syslinux versions: 4.07/2013-07-25, 6.03/2014-10-06
Grub versions: 0.4.6a, 2.02~beta2
Locale ID: 0x0809
Found USB 3.0 device 'Kingmax Kingmax USB Device' (1687:0903)
1 device found
No volume information for drive 0x87
Disk type: Removable, Sector Size: 512 bytes
Cylinders: 3951, TracksPerCylinder: 255, SectorsPerTrack: 63
Partition type: MBR, NB Partitions: 1
Disk ID: 0x00000001
Drive does not have an x86 Master Boot Record
Partition 1:
Type: Small FAT16 (0x04)
Size: 30.3 GB (32505856000 bytes)
Start Sector: 0, Boot: No, Recognized: Yes
Scanning image...
ISO analysis:
Image is an ISO9660 image
Will use '/isolinux/isolinux.cfg' for Syslinux
Detected Syslinux version: 6.03/20150819 (from
'/EFI/BOOT/isolinux.bin')
Disk image analysis:
Image has an unknown Master Boot Record
Image is a bootable disk image
ISO label: 'TAILS 2.0.1 - 20160212'
Size: 1135089664 bytes
Has a >64 chars filename: No
Has Symlinks: No
Has a >4GB file: No
Uses Bootmgr: No
Uses EFI: Yes
Uses Grub 2: No
Uses Grub4DOS: No
Uses isolinux: Yes (6.03)
Uses KolibriOS: No
Uses ReactOS: No
Uses WinPE: No
Using image: tails-i386-2.0.1.iso
Downloading 'ldlinux.sys' from
http://rufus.akeo.ie/files/syslinux-6.03/20150819/ldlinux.sys
Unable to access file: 404
Extended version was not found, trying main version
Downloading 'ldlinux.sys' from
http://rufus.akeo.ie/files/syslinux-6.03/ldlinux.sys
File length: 68599 bytes
Successfully downloaded 'ldlinux.sys'
Downloading 'ldlinux.bss' from
http://rufus.akeo.ie/files/syslinux-6.03/20150819/ldlinux.bss
Unable to access file: 404
Extended version was not found, trying main version
Downloading 'ldlinux.bss' from
http://rufus.akeo.ie/files/syslinux-6.03/ldlinux.bss
File length: 512 bytes
Successfully downloaded 'ldlinux.bss'
Format operation started
Requesting disk access...
Opened drive \\.\PHYSICALDRIVE7 for write access
No drive letter was assigned...
Will use 'F:' as volume mountpoint
No logical drive found (unpartitioned?)
Drive does not appear to be partitioned
Analyzing existing boot records...
Drive does not have an x86 Master Boot Record
Deleting partitions...
Clearing MBR/PBR/GPT structures...
Erasing 128 sectors
Partitioning (MBR)...
Waiting for logical drive to reappear...
Formatting (FAT32)...
Using cluster size: 16384 bytes
Quick format was selected
Creating file system...
Format completed.
Writing master boot record...
Drive has a Zeroed Master Boot Record
Partition is already FAT32 LBA...
Set bootable USB partition as 0x80
Using Syslinux MBR
Found volume GUID \\?\Volume{ea031c1e-408f-11e5-8318-fcaa14e7bd8e}\
Installing Syslinux 6.03...
Using existing './rufus_files/syslinux-6.03/20150819/ldlinux.sys'
Using existing './rufus_files/syslinux-6.03/20150819/ldlinux.bss'
Successfully wrote 'ldlinux.sys'
Opened drive \\?\Volume{ea031c1e-408f-11e5-8318-fcaa14e7bd8e} for write access
Successfully wrote Syslinux boot record
Successfully remounted Volume{ea031c1e-408f-11e5-8318-fcaa14e7bd8e}\ on F:\
Copying ISO files...
Extracting files...
libcdio: Found Extension: Joliet Level 3
Image is an ISO9660 image
This image will be extracted using Joliet extensions (if present)
Extracting: F:\.disk\archive_trace (1 bytes)
Extracting: F:\.disk\info (79 bytes)
Extracting: F:\EFI\BOOT\bootia32.efi (294.5 KB)
Extracting: F:\EFI\BOOT\bootx64.efi (172.4 KB)
Extracting: F:\EFI\BOOT\bootx64.png (7.1 KB)
Extracting: F:\EFI\BOOT\cat.c32 (2.3 KB)
Extracting: F:\EFI\BOOT\chain.c32 (27.8 KB)
Extracting: F:\EFI\BOOT\cmd.c32 (1.8 KB)
Extracting: F:\EFI\BOOT\cmenu.c32 (5.1 KB)
Extracting: F:\EFI\BOOT\config.c32 (2.1 KB)
Extracting: F:\EFI\BOOT\cptime.c32 (5.2 KB)
Extracting: F:\EFI\BOOT\cpu.c32 (5.5 KB)
Extracting: F:\EFI\BOOT\cpuid.c32 (2.4 KB)
Extracting: F:\EFI\BOOT\cpuidtest.c32 (3.5 KB)
Extracting: F:\EFI\BOOT\debug.c32 (2.2 KB)
Extracting: F:\EFI\BOOT\dhcp.c32 (5.3 KB)
Extracting: F:\EFI\BOOT\disk.c32 (2.7 KB)
Extracting: F:\EFI\BOOT\dmi.c32 (9.9 KB)
Extracting: F:\EFI\BOOT\dmitest.c32 (13.4 KB)
Extracting: F:\EFI\BOOT\elf.c32 (4.2 KB)
Extracting: F:\EFI\BOOT\ethersel.c32 (3.7 KB)
Extracting: F:\EFI\BOOT\f1.txt (841 bytes)
Extracting: F:\EFI\BOOT\f10.txt (728 bytes)
Extracting: F:\EFI\BOOT\f2.txt (424 bytes)
Extracting: F:\EFI\BOOT\f3.txt (597 bytes)
Extracting: F:\EFI\BOOT\f4.txt (357 bytes)
Extracting: F:\EFI\BOOT\f5.txt (807 bytes)
Extracting: F:\EFI\BOOT\f6.txt (1.1 KB)
Extracting: F:\EFI\BOOT\f7.txt (933 bytes)
Extracting: F:\EFI\BOOT\f8.txt (181 bytes)
Extracting: F:\EFI\BOOT\f9.txt (747 bytes)
Extracting: F:\EFI\BOOT\gfxboot.c32 (13.1 KB)
Extracting: F:\EFI\BOOT\gpxecmd.c32 (2.3 KB)
Extracting: F:\EFI\BOOT\grub\grub.cfg (413 bytes)
Extracting: F:\EFI\BOOT\grub\i386-efi\acpi.mod (9.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\adler32.mod (1.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\ahci.mod (15.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\all_video.mod (712 bytes)
Extracting: F:\EFI\BOOT\grub\i386-efi\aout.mod (1.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\appleldr.mod (3.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\archelp.mod (3.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\at_keyboard.mod (4.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\ata.mod (5.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\backtrace.mod (1.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\bfs.mod (7.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\bitmap.mod (2.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\bitmap_scale.mod (3.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\blocklist.mod (2.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\boot.mod (2.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\bsd.mod (29.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\btrfs.mod (14.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\bufio.mod (2.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cat.mod (3.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cbfs.mod (3.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cbls.mod (3.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cbmemc.mod (2.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cbtable.mod (1.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cbtime.mod (2.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\chain.mod (5.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cmdline_cat_test.mod (3.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cmp.mod (2.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\command.lst (3.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cpio.mod (2.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cpio_be.mod (2.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cpuid.mod (1.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\crc64.mod (1.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\crypto.lst (936 bytes)
Extracting: F:\EFI\BOOT\grub\i386-efi\crypto.mod (5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cryptodisk.mod (9.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\cs5536.mod (3.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\date.mod (2.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\datehook.mod (1.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\datetime.mod (1.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\disk.mod (2.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\diskfilter.mod (10.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\div_test.mod (3.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\dm_nv.mod (1.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\echo.mod (2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\efi_gop.mod (7.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\efi_uga.mod (4.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\efifwsetup.mod (1.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\efinet.mod (3.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\ehci.mod (15.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\elf.mod (5.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\eval.mod (1.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\exfat.mod (5.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\exfctest.mod (1.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\ext2.mod (5.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\extcmd.mod (4.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\fat.mod (5.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\file.mod (16.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\fixvideo.mod (2.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\font.mod (12.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\fs.lst (214 bytes)
Extracting: F:\EFI\BOOT\grub\i386-efi\fshelp.mod (2.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_arcfour.mod (1.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_blowfish.mod (8.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_camellia.mod (33.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_cast5.mod (16.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_crc.mod (3.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_des.mod (19 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_dsa.mod (2.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_idea.mod (3.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_md4.mod (3.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_md5.mod (3.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_rfc2268.mod (2.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_rijndael.mod (18.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_rmd160.mod (8.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_rsa.mod (2.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_seed.mod (15.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_serpent.mod (15.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_sha1.mod (7.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_sha256.mod (4.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_sha512.mod (9.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_tiger.mod (12.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_twofish.mod (36.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gcry_whirlpool.mod (24.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gdb.mod (24.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\geli.mod (5.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gettext.mod (5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gfxmenu.mod (40.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gfxterm.mod (10.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gfxterm_background.mod (2.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gfxterm_menu.mod (5.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\gptsync.mod (3.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\halt.mod (3.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\hashsum.mod (5.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\hdparm.mod (7.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\help.mod (2.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\hexdump.mod (3.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\hfs.mod (7.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\hfsplus.mod (7.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\hfspluscomp.mod (3.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\http.mod (5.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\iorw.mod (2.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\iso9660.mod (8.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\jfs.mod (6.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\jpeg.mod (6.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\keylayouts.mod (5.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\keystatus.mod (2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\ldm.mod (6.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\legacy_password_test.mod (14.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\legacycfg.mod (30.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\linux16.mod (8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\linuxefi.mod (6.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\loadbios.mod (3.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\loadenv.mod (6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\loopback.mod (3.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\ls.mod (4.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\lsacpi.mod (4.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\lsefi.mod (3.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\lsefimmap.mod (2.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\lsefisystab.mod (2.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\lsmmap.mod (1.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\lspci.mod (4.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\lssal.mod (2.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\luks.mod (6.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\lvm.mod (6.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\lzopio.mod (8.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\macbless.mod (3.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\macho.mod (7.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\mdraid09.mod (2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\mdraid09_be.mod (2.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\mdraid1x.mod (2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\memdisk.mod (2.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\memrw.mod (2.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\minicmd.mod (3.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\minix2.mod (3.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\minix2_be.mod (3.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\minix3.mod (3.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\minix3_be.mod (3.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\minix_be.mod (3.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\mmap.mod (6.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\moddep.lst (4.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\morse.mod (2.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\mpi.mod (28.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\msdospart.mod (2.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\multiboot.mod (12 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\multiboot2.mod (13.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\nativedisk.mod (4.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\net.mod (46.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\newc.mod (3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\normal.mod (117.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\ntfs.mod (9.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\ntfscomp.mod (4.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\odc.mod (2.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\offsetio.mod (1.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\ohci.mod (10.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\part_acorn.mod (1.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\part_amiga.mod (1.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\part_apple.mod (2.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\part_bsd.mod (2.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\part_dfly.mod (1.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\part_dvh.mod (1.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\part_msdos.mod (2.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\part_plan.mod (1.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\part_sun.mod (1.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\part_sunpc.mod (1.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\partmap.lst (111 bytes)
Extracting: F:\EFI\BOOT\grub\i386-efi\parttool.lst (17 bytes)
Extracting: F:\EFI\BOOT\grub\i386-efi\parttool.mod (4.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\password.mod (2.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\password_pbkdf2.mod (2.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\pata.mod (4.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\pbkdf2.mod (1.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\pbkdf2_test.mod (2.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\pcidump.mod (2.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\play.mod (2.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\png.mod (7.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\priority_queue.mod (1.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\probe.mod (2.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\procfs.mod (2.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\progress.mod (2.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\raid5rec.mod (1.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\raid6rec.mod (2.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\read.mod (1.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\reboot.mod (1.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\regexp.mod (52.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\reiserfs.mod (8.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\relocator.mod (17.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\romfs.mod (4.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\scsi.mod (4.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\serial.mod (9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\setjmp.mod (708 bytes)
Extracting: F:\EFI\BOOT\grub\i386-efi\setjmp_test.mod (1.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\setpci.mod (5.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\signature_test.mod (6.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\sleep.mod (2.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\sleep_test.mod (2.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\spkmodem.mod (2.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\squash4.mod (7.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\syslinuxcfg.mod (18.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\terminal.lst (162 bytes)
Extracting: F:\EFI\BOOT\grub\i386-efi\terminal.mod (4.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\terminfo.mod (11.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\test.mod (5.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\test_blockarg.mod (1.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\testload.mod (2.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\testspeed.mod (2.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\tftp.mod (5.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\tga.mod (4.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\time.mod (1.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\tr.mod (2.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\trig.mod (1.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\true.mod (1.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\udf.mod (7.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\ufs1.mod (5.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\ufs1_be.mod (5.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\ufs2.mod (5.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\uhci.mod (6.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\usb.mod (10.5 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\usb_keyboard.mod (3.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\usbms.mod (6.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\usbserial_common.mod (2.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\usbserial_ftdi.mod (2.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\usbserial_pl2303.mod (2.7 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\usbserial_usbdebug.mod (1.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\usbtest.mod (3.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\verify.mod (11.8 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\video.lst (41 bytes)
Extracting: F:\EFI\BOOT\grub\i386-efi\video.mod (6.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\video_bochs.mod (5.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\video_cirrus.mod (5.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\video_colors.mod (5.6 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\video_fb.mod (21.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\videoinfo.mod (3.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\videotest.mod (4.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\videotest_checksum.mod (2.4 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\xfs.mod (6.3 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\xnu.mod (26.9 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\xnu_uuid.mod (2.2 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\xnu_uuid_test.mod (2.1 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\xzio.mod (16.0 KB)
Extracting: F:\EFI\BOOT\grub\i386-efi\zfscrypt.mod (5.5 KB)
Extracting: F:\EFI\BOOT\hdt.c32 (183.4 KB)
Extracting: F:\EFI\BOOT\hexdump.c32 (4.7 KB)
Extracting: F:\EFI\BOOT\host.c32 (2.6 KB)
Extracting: F:\EFI\BOOT\ifcpu.c32 (4.8 KB)
Extracting: F:\EFI\BOOT\ifcpu64.c32 (2.4 KB)
Extracting: F:\EFI\BOOT\ifmemdsk.c32 (5.6 KB)
Extracting: F:\EFI\BOOT\ifplop.c32 (2.6 KB)
Extracting: F:\EFI\BOOT\isolinux.bin (40 KB)
Extracting: F:\EFI\BOOT\isolinux.cfg (261 bytes)
Duplicated F:\EFI\BOOT\isolinux.cfg to F:\EFI\BOOT\syslinux.cfg
Extracting: F:\EFI\BOOT\kbdmap.c32 (2.4 KB)
Extracting: F:\EFI\BOOT\kontron_wdt.c32 (6.1 KB)
Extracting: F:\EFI\BOOT\ldlinux.c32 (113.9 KB)
Extracting: F:\EFI\BOOT\ldlinux.e64 (131.5 KB)
Extracting: F:\EFI\BOOT\lfs.c32 (6.9 KB)
Extracting: F:\EFI\BOOT\libcom32.c32 (193.1 KB)
Extracting: F:\EFI\BOOT\libgpl.c32 (86.8 KB)
Extracting: F:\EFI\BOOT\liblua.c32 (119 KB)
Extracting: F:\EFI\BOOT\libmenu.c32 (27.1 KB)
Extracting: F:\EFI\BOOT\libutil.c32 (24 KB)
Extracting: F:\EFI\BOOT\linux.c32 (6.0 KB)
Extracting: F:\EFI\BOOT\live.cfg (1.3 KB)
Extracting: F:\EFI\BOOT\live486.cfg (615 bytes)
Extracting: F:\EFI\BOOT\liveamd64.cfg (619 bytes)
Extracting: F:\EFI\BOOT\ls.c32 (3.8 KB)
Extracting: F:\EFI\BOOT\lua.c32 (8.6 KB)
Extracting: F:\EFI\BOOT\mboot.c32 (11.8 KB)
Extracting: F:\EFI\BOOT\meminfo.c32 (3.2 KB)
Extracting: F:\EFI\BOOT\menu.c32 (31.0 KB)
Extracting: F:\EFI\BOOT\menu.cfg (111 bytes)
Extracting: F:\EFI\BOOT\pci.c32 (4.5 KB)
Extracting: F:\EFI\BOOT\pcitest.c32 (4.4 KB)
Extracting: F:\EFI\BOOT\pmload.c32 (4.0 KB)
Extracting: F:\EFI\BOOT\poweroff.c32 (2.3 KB)
Extracting: F:\EFI\BOOT\prdhcp.c32 (3.9 KB)
Extracting: F:\EFI\BOOT\pwd.c32 (2.2 KB)
Extracting: F:\EFI\BOOT\pxechn.c32 (14.6 KB)
Extracting: F:\EFI\BOOT\reboot.c32 (1.9 KB)
Extracting: F:\EFI\BOOT\rosh.c32 (16.6 KB)
Extracting: F:\EFI\BOOT\sanboot.c32 (2.3 KB)
Extracting: F:\EFI\BOOT\sdi.c32 (3.9 KB)
Extracting: F:\EFI\BOOT\splash.png (4.1 KB)
Extracting: F:\EFI\BOOT\stdmenu.cfg (509 bytes)
Extracting: F:\EFI\BOOT\sysdump.c32 (18.5 KB)
Extracting: F:\EFI\BOOT\syslinux.c32 (10.1 KB)
Extracting: F:\EFI\BOOT\tails.cfg (219 bytes)
Extracting: F:\EFI\BOOT\vesa.c32 (4.2 KB)
Extracting: F:\EFI\BOOT\vesainfo.c32 (2.9 KB)
Extracting: F:\EFI\BOOT\vesamenu.c32 (31.6 KB)
Extracting: F:\EFI\BOOT\vpdtest.c32 (2.5 KB)
Extracting: F:\EFI\BOOT\whichsys.c32 (3.3 KB)
Extracting: F:\EFI\BOOT\zzjson.c32 (5.2 KB)
Extracting: F:\isolinux\boot.cat (2 KB)
Extracting: F:\isolinux\f1.txt (841 bytes)
Extracting: F:\isolinux\f10.txt (728 bytes)
Extracting: F:\isolinux\f2.txt (424 bytes)
Extracting: F:\isolinux\f3.txt (597 bytes)
Extracting: F:\isolinux\f4.txt (357 bytes)
Extracting: F:\isolinux\f5.txt (807 bytes)
Extracting: F:\isolinux\f6.txt (1.1 KB)
Extracting: F:\isolinux\f7.txt (933 bytes)
Extracting: F:\isolinux\f8.txt (181 bytes)
Extracting: F:\isolinux\f9.txt (747 bytes)
Extracting: F:\isolinux\ifcpu64.c32 (1.7 KB)
Extracting: F:\isolinux\isolinux.bin (40 KB)
Extracting: F:\isolinux\isolinux.cfg (261 bytes)
Extracting: F:\isolinux\ldlinux.c32 (113.9 KB)
Extracting: F:\isolinux\libcom32.c32 (178.3 KB)
Extracting: F:\isolinux\libutil.c32 (22.9 KB)
Extracting: F:\isolinux\live.cfg (1.3 KB)
Extracting: F:\isolinux\live486.cfg (615 bytes)
Extracting: F:\isolinux\liveamd64.cfg (619 bytes)
Extracting: F:\isolinux\menu.cfg (111 bytes)
Extracting: F:\isolinux\splash.png (4.1 KB)
Extracting: F:\isolinux\stdmenu.cfg (508 bytes)
Extracting: F:\isolinux\tails.cfg (219 bytes)
Extracting: F:\isolinux\vesamenu.c32 (25.6 KB)
Extracting: F:\live\Tails.module (20 bytes)
Extracting: F:\live\filesystem.packages (49.8 KB)
Extracting: F:\live\filesystem.squashfs (1 GB)
Extracting: F:\live\initrd.img (15.3 MB)
Extracting: F:\live\initrd2.img (15.5 MB)
Extracting: F:\live\vmlinuz (2.7 MB)
Extracting: F:\live\vmlinuz2 (3.0 MB)
Extracting: F:\utils\linux\syslinux (191.2 KB)
Extracting: F:\utils\mbr\mbr.bin (440 bytes)
Extracting: F:\utils\win32\syslinux.exe (238 KB)
Created: F:\syslinux.cfg
Finalizing, please wait...
Created: F:autorun.inf
Created: F:autorun.ico
Found USB 3.0 device 'Kingmax Kingmax USB Device' (1687:0903)
Using autorun.inf label for drive F: 'TAILS 2.0.1 - 20160212'
1 device found
Disk type: Removable, Sector Size: 512 bytes
Cylinders: 3951, TracksPerCylinder: 255, SectorsPerTrack: 63
Partition type: MBR, NB Partitions: 1
Disk ID: 0x003528A4
Drive has a Syslinux Master Boot Record
Partition 1:
Type: FAT32 LBA (0x0c)
Size: 30.3 GB (32504807424 bytes)
Start Sector: 2048, Boot: Yes, Recognized: Yes