Hi,

I recently had a few troubles with TinyLMS. After tracking it down,
it was due to a corruption of the FAT filesystem. This confirm what I
said about backups in section (6), you can not fully trust those hard
drives.

1) Symptoms
-------------
The first thing I noticed is that I was not able to copy new files
to my Touch using rsync. After investigation on the Touch itself, I
realised that the disk was mounted read-only :
-----------------
# mount
[...]
/dev/sda1 on /media/sda1 type vfat
(ro,fmask=0022,dmask=0022,allow_utime=177777,codepage=cp437,iocharset=iso8859-1)
------------------
I did not think about it much, I just remounted the disk read-write
and copied my files.

Later one, I noticed is that on other SqueezeBoxes I would not get
all artwork.
On the SqueezeBox Touch being the server the player would not
connect to the server at all.
Also, the menu line for "Logitech Media Server" was no longer
available in the USB menu.
And SqueezeControlXL on my tablet would not work.

It started approximately just after I upgraded to 7.7.2, but that
could be a coincidence...

2) Debugging
-------------
The first thing was checking the kernel message logs on the Touch
itself :
-------------------------
# dmesg
[...]
CMD_RESP: cmd 0x801f error, result=0x1
FAT: Filesystem panic (dev sda1)
fat_bmap_cluster: request beyond EOF (i_pos 7659214134)
File system has been set read-only
-------------------------
Linux clearly complain that the FAT filesystem is not consistent,
and that was the reason the filesystem was read-only.

I removed the USB hard drive from the Touch and connected it to my
Linux PC for more extensive diagnostic. I know not many people use Linux
as their desktop, but similar tools are available under Windows...

My first concern was about the disk itself, if some sector became
bad or the disk is failing. Standard SMART diagnostics can usually
answer those questions. Under Windows, I tend to use the vendor SMART
utility. I checked the error logs, look for reallocated sectors, and
triggered a short selftest :
--------------------------
smartctl -l error /dev/sdg -d sat
smartctl -t short /dev/sdg -d sat
smartctl -c /dev/sdg -d sat
smartctl -l selftest /dev/sdg -d sat
--------------------------
Fortunately, the disk was fine.

Next level up is to check the filesystem. Under Windows, you can use
scandisk. The automatic pass told me about a corrupted file, I removed
it and I did a manual repair pass :
--------------------------
dosfsck -a -v /dev/sdg1
rm /media/TOSHIBA\ EXT/.Squeezebox/cache/artwork.db
dosfsck -r -v /dev/sdg1
--------------------------
As you can see, the artwork database was the file that was corrupted
at the FAT filesystem level.

Quick conclusion : the hard drive was fine. The FAT filesystem was
corrupted, either a bug in the Linux driver (quite unlikely) or the hard
drive was powered off or disconnected during a database update (more
likely).

3) Reconnecting
----------------
I reconnected the USB hard drive to the Touch. The Touch did the
usual scan for changes. The scanner did not find any new files so it did
not rescan for artwork.
I checked the system. The filesystem was mounted read-write properly
and the kernel message log did not had those bad messages.
On the other hand, I had lost all artwork and the server touch still
could not connect to itself. I suspect that the scanner did not rebuild
the artwork database and that was causing troubles.

At this point, I'm fairly confident that deleting the full database
would have brought me back to a fully functioning system. But I had
other plans...

Have fun...

Jean


------------------------------------------------------------------------
jean2's Profile: http://forums.slimdevices.com/member.php?userid=33946
View this thread: http://forums.slimdevices.com/showthread.php?t=82070

_______________________________________________
Touch mailing list
Touch@lists.slimdevices.com
http://lists.slimdevices.com/mailman/listinfo/touch

Reply via email to