PREFACE: While Linux will let you WRITE to the drive as well, doing so runs a small risk the Roamio will reject the drive and go into an infinite reboot loop. The only certain way to recover from is to erase the drive losing your recordings. Don't try it, unless you have the tools and skill to recover from such a situation. The steps below are for READS and is likely safe because of it.
The Ext partitions on Roamio hard drives appear
to be readable on commonplace Linux PC's. There's no new techniques in here, but an attempt to be accurate and safe for the semi-technical.
1) Connect the Roamio Hard Drive to a Linux computer, either via Sata or eSata/USB housing.
Check the drive has had enough time to spin up.
2) Locate device name by running:
> dmesg | tail -30
You are looking for a few lines that says "sd" followed by a lower case letter. Confirm it's the right drive, it should say:
sdX: unknown partition table
And just above that it will list the size and model name detected. Make sure everything matches. This is very important as one day you'll erase all your data if you have this one letter off.
3) View the partition map of the device name from step 2. Viewing the device probably requires root permissions so su or sudo at this point.
To view by hand it's:
> dd if=/dev/sdX skip=9 count=1 bs=512 | od -h -a
> ./pmdmp /dev/sdX
> ./pdisk -l /dev/sdX (not Roamio aware as of today, but eventually)
> ./mfslayout.sh /dev/sdX (requires the Roamio fork)
4) /var is partition 9, you're looking for the offset for this partition. Most viewers will be displaying 512byte blocks. Multiply this number by 512 to convert to bytes, on a calculator that can handle large numbers. [Google works: OFFSET * 512]
5) Create loopback device with calculated offset:
> losetup --offset NUMBER_FROM_4 -f /dev/sdX
6) Locate corresponding new loopback device, in the first column:
> losetup -a
7) Test it if makes sense as Ext:
> dumpe2fs /dev/loopX
This will either give you a short and curt error message or long and detailed success message with more than you want to know. If you got the short message, nothing you can do except skip to the Undo part and try again, double checking you have your numbers, math, and device right.
7b) Another method in case if you're really stuck but slightly off, is looking for the magic header in the superblock by hand.
> od -h /dev/loopX | grep "ef53"
This is not easy so you might as well just post back for help instead.
8) Mount Read Only:
> mkdir /mnt/Roamio
> mount -oro /dev/loopX /mnt/Roamio
9) View logs:
> cd /mnt/Roamio/log/
> less kernel
> less messages
> less tverr
9b) older logs get compressed. Use zcat or gzcat.
-1) Undo above steps manually:
> cd / # in all shells
> umount /mnt/Roamio
> losetup -D
Device should be free now if there were no errors.
X) Undo them all at once, it should be safe to do a reboot:
> /sbin/shutdown -r now