15

I have two identical USB sticks (TrekStor 16GB) prepared as following with the c't bankix image.

  1. Preparation using GParted:

    • Deleted the existing partition
    • Created a new DOS partition table
    • Formatted the stick with FAT32, primary partition
  2. Loaded the image to the stick via usb-creator-kde.

So I did the identical procedure for both sticks, but one boots and the other crashes with an error message:

(initramfs) mount: mounting /dev/loop0 on //filesystem.squashfs failed: No such device
Can not mount /dev/loop0 (/cdrom/casper/filesystem.squashfs) on //filesystem.squashfs

Then I tried to compare them via sudo cmp /dev/sdb /dev/sdc. This resulted in:

/dev/sdb /dev/sdc differ: byte 441, line 5

What's wrong here, and how do I fix it?

  • You can try to copy the working one over the other one using dd, and see if it helps. Or you can just use sfdisk to copy the partition table from the good one, and go from there. – Angelo Dec 26 '14 at 21:02
  • It tells you right there what the problem is - filesystem.squashfs is invalid for some reason, or else you have misconfigured the boot process. That's an image file - compressed - it's your entire root filesystem. But... your initramfs thinks it is located on /cdrom. And it is apparently trying to mount itself atop itself? This is an initramfs thing - I bet its fine. It maybe you have both sticks plugged into the computer at the same time? Or possibly you have otherwise duplicated settings that should have been unique during setup. Stay away from live system creators - they're trouble. – mikeserv Dec 28 '14 at 2:20
30

While I don't know why one crashes (bad stick? corrupt image?), the usual suspect for differences in "identically" created file systems, be they ISO9660 or otherwise, is time stamps, e.g. for creation time. Or a random default file system label. If you want identical data on both, dd the good image onto the other stick and verify their checksums (md5sum or other; any will do).

Oh, and the assumption from the title of your question does not hold. It's not only one byte that differs. cmp only tells you the first that's different and then exits.

22

In all likelihood, they don't differ by just one byte. This is just the first differing byte. Run cmp -l dev/sdb /dev/sdc to list all the differences.

The first 512 bytes of the stick is its boot sector. Offset 441 (440 if you start numbering at 0) is the location of the disk signature which is supposed to identify the disk uniquely (for the benefits of Windows — I don't remember seeing Linux care). It's to be expected that they'll differ. It's the files on the stick that are supposed to be identical, not the disk labels (or the files' timestamps, by the way).

Verify that the stick that crashes has the correct file content. It may be physically damaged.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.