Kind of both of your hypothesis were correct. As you dumped a partition directly to your thumb drive, there was no partition table and, consequently, no boot sector.
To make it work there are a few ways you can go. Generally, first create a partition table on the drive, then create the actual partition (/dev/sdb1) that will have the OS data and then copy the data there. Once you have all the data you can install grub to the drive also.
That could be done rather quickly with a few commands, but it's easy to make (terrible) mistakes if you're not used to the terminology and concepts. So I'll suggest you the following, which should be easier:
- BACKUP! EVERYTHING! You may lose ALL data, permanently, by missing a single character sometimes.
- Install and open gparted:
- Select your thumb drive (make sure it's not selecting your disk)
- Menu Device > Create partition table
- You can go with msdos
- Create a primary partition, as ext4, on your unallocated space
- Set the new partition as bootable
- Apply and exit
sudo dd if=/dev/sda2 of=/dev/sdb1; sudo resize2fs /dev/sdb1.
- Boot into your debian system (I'm assuming your thumb drive is still
/dev/sdb after booting Debian)
blkid /dev/sdb1 to get the UUID of the partition you've cloned.
- Backup your current
- Update it so that it refers the
/ path to the UUID you got, like the following:
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=5405ba56-dd62-48b4-b381-976162b4957c / ext4 errors=remount-ro 0 1
sudo mount /dev/sdb1 /mnt; sudo cp -p /etc/fstab /mnt/etc/fstab; sudo umount /mnt to copy this new fstab to your thumb drive Debian.
sudo grub-install /dev/sdb
- Restore the backup you made of the
/etc/fstab file to the original state (with the UUID of the disk partition, not thumb drive partition).
- These commands should not have messed up with the boot of your disk Debian, but now that the
fstab is back to what it was, run
sudo update-grub just to make sure, as updates can have read the
/etc/fstab file while it was set to the thumb drive.
This should have cloned the contents of your debian partition to the thumb drive and created a boot environment for it. I cannot validate this procedure here right now, so be aware that, even though I've done such things a few times, the commands here are untested right now.