[Solved] PVR-9200 HDD failure, running humaxrw on a 64-bit Linux Mint PC and the 'Permission denied' error

Jackfruit1000

New Member
Hello,

My PVR 9200T packed up while I was away for a week. On turning on the Humax it gets through the initial startup screen and then hangs with a message saying something like "Please, Wait..." (I think it was that, the disc's out of it so I can't check)). With the drive disconnected the Humax works fine for watching TV, just without the recording facilities (obviously!).

I've taken the drive out and put it in the old Win XP PC I've previously used for rescuing recordings using Humaxrw. When I run this (humaxrw 1: -l), I get the error message "Partition 2: Permission denied".

I've tried Humaxcheck, and similarly it says that it doesn't have permission.

After reading some comments elsewhere about running as admin, I've tried loading the Linux version onto my laptop (Linux Mint 19.1 64-bit Cinnamon). The instructions in the README.txt file say "Just copy it into a suitable directory.", nothing more about installing. The humaxrw file is in a folder on my desktop. When I open a terminal window, navigate to that folder and try 'sudo humaxrw /dev/sdb -l' (the humax drive is in an external USB caddy) I get a message "humaxrw: command not found".

Thinking, maybe this is (as I read somewhere else) a 64-bit issue, I've tried running the laptop off a Mint 17.3 32-bit live CD, and repeated the above. Same problem.

Questions:

Is the humaxrw error described (permission denied) a known one, and is there a known solution?

Am I doing something silly trying to run humaxrw on my Linux machine, does it need to be in a particular folder and/or is there something I need to do to install it so that the command can be found?

Any advice about how to go forward would be gratefully received. The HDD has a lot of programmes recorded which I'd like to save if at all possible.

Thanks,

Piers.

P.S. I'm not much of a Linux expert, so newbie-friendly answers would be appreciated!
 
32 bit code should run quite happily on a 64 bit machine.
You just need to use ./humaxrw or copy it to somewhere like /usr/local/bin which is undoubtedly on your PATH.
Linux is not Windows!
 
32 bit code should run quite happily on a 64 bit machine.
You just need to use ./humaxrw or copy it to somewhere like /usr/local/bin which is undoubtedly on your PATH.
Linux is not Windows!
Thanks for the quick reply.

Could you please be a bit more detailed. I've been a Linux Mint user for 5 years now, but rarely do stuff via the command line except where instructed, so can never remember commands from one time to another!

For example, I just copied the humaxrw file, navigated to /usr/local/bin and the paste command is greyed out. Presumably that folder requires admin privileges to paste, which I can't remember how to do in the GUI! Do I need to copy it within Terminal?

As for using ./humaxrw, I don't know if I'm typing it exactly as you intend, but here's my Terminal window output:

piers@piers-Latitude-E6410:~$ cd Desktop/Humax
piers@piers-Latitude-E6410:~/Desktop/Humax$ ./humaxrw /dev/sdb -l
bash: ./humaxrw: No such file or directory
piers@piers-Latitude-E6410:~/Desktop/Humax$ ls -l
total 188
-rw-rw-r-- 1 piers piers 11097 Aug 18 21:22 humaxcheck-0.10W-win32.zip
-rwxr--r-- 1 piers piers 22016 Mar 29 2011 humaxcheck.exe
-rwxr-xr-x 1 piers piers 39304 Sep 7 2016 humaxrw
-rw-rw-r-- 1 piers piers 33160 Aug 18 21:23 humaxrw-1.15-linux.tar.gz
-rw-rw-r-- 1 piers piers 37099 Aug 18 21:23 humaxrw-1.15-win32.zip
-rw-r--r-- 1 piers piers 12303 May 26 2013 README.txt
-rwxr-xr-x 1 piers piers 17948 Sep 7 2016 ts2hrw
piers@piers-Latitude-E6410:~/Desktop/Humax$ ./humaxrw /dev/sdb -l
bash: ./humaxrw: No such file or directory


For info, the humxrw and ts2hrw files in the folder are from the Linux tar.gz archive, not the Win zip!

Thanks.
 
OK, did this...

piers@piers-Latitude-E6410:~/Desktop/Humax$ sudo cp humaxrw /usr/local/bin

...so now have a copy in the directory you suggested, but my attempts to run the file in either location, with or without sudo and/or "./", still get the same error message:

sudo: unable to execute ./humaxrw: No such file or directory
 
I've taken the drive out and put it in the old Win XP PC I've previously used for rescuing recordings using Humaxrw. When I run this (humaxrw 1: -l), I get the error message "Partition 2: Permission denied".

....

Is the humaxrw error described (permission denied) a known one, and is there a known solution?
It is a known error if you are attempting to use a disk number in the command which isn't the correct disk number.

Another way to produce the same "error" message is running humaxrw in windows but not selecting "run as admin", even if you are logged in via an admin account.

In windows, after making sure that you are running humaxrw as admin you could try your Humaxrw query (humaxrw 1: -l) using 2, 3 and then 4 instead of just 1.

As you previously had humaxrw running OK on your XP PC why are you attempting to use linux instead of just working out what is different on this occasion? Is there something you aren't telling?

If you can't work it out another approach is to use the front end version of humaxrw which you don't need to tell it the correct disk number on your machine.
 
It is a known error if you are attempting to use a disk number in the command which isn't the correct disk number.

Another way to produce the same "error" message is running humaxrw in windows but not selecting "run as admin", even if you are logged in via an admin account.

In windows, after making sure that you are running humaxrw as admin you could try your Humaxrw query (humaxrw 1: -l) using 2, 3 and then 4 instead of just 1.

As you previously had humaxrw running OK on your XP PC why are you attempting to use linux instead of just working out what is different on this occasion? Is there something you aren't telling?

If you can't work it out another approach is to use the front end version of humaxrw which you don't need to tell it the correct disk number on your machine.
Thanks for the reply.

There's more info that I can give you, I'm not trying to hide anything! :)

I have two PVR-9200Ts. The other one's fine. I also have a third spare 160GB from a friend's machine that had other issues so he dumped it.

On the Win XP machine the spare drive can be read and written to just fine with humaxrw, without me doing anything special about running the command prompt as admin. I'd presumed that's because my user account is the admin account. When looking at the spare drive ID 1 works, and as I'm cold swapping between the two I've no reason to imagine it wouldn't be the same ID with the dodgy drive. Besides which I've tried all IDs from 0 to 9, and only get that particular message with 1.

I will go and try explicitly running the command prompt as admin, but as it was working for one drive and not the other I suspect that the problem's something else (e.g. corrupted disc).

[Edit:] Tried that, made no difference (as expected!)

I switched to experimenting with my Linux laptop because I'm slightly more trusting of the difference between ordinary and super user, and on the offchance that Linux might work Windows doesn't. That and it's an opportunity to get a little bit more experience of running Linux terminal commands (I am trying to learn...). Also, my XP machine is very old (20 years) and has other issues, so I can't really rely on it in the long term.
 
Last edited:
32 bit code should run quite happily on a 64 bit machine.
I think past experience has shown this is not necessarily true for humaxrw; I think it will depend on whether the 32 bit libraries are installed by default by the distribution. I agree that if they are not present then installing them should allow humaxrw to work.
 
You may be able to 'fix' Linux version by installing the 32 bit compatibility library for libc. From this thread it suggests that it can be done using apt-get install libc6:i386 but beware it may break your system.

The Windows version has a bug where it can give incorrect error messages. If you can get the Linux version working it should give the correct error message (my guess is I/O error).
 
I've tried loading the Linux version onto my laptop (Linux Mint 19.1 64-bit Cinnamon)
I'm running Mint 19.3 Mate 64 bit and humaxrw runs OK. I haven't knowingly installed 32 bit libraries (or don't remember), so I presume they're installed by default.
You can check as follows:
Code:
prpr@mint ~ $ dpkg -l | grep libc6
ii  libc6:amd64                                  2.27-3ubuntu1.2                                     amd64        GNU C Library: Shared libraries
ii  libc6:i386                                   2.27-3ubuntu1.2                                     i386         GNU C Library: Shared libraries
ii  libc6-dev:amd64                              2.27-3ubuntu1.2                                     amd64        GNU C Library: Development Libraries and Header Files
ii  libc6-i386                                   2.27-3ubuntu1.2                                     amd64        GNU C Library: 32-bit shared libraries for AMD64
prpr@mint ~ $ ./humaxrw
Humax disk not found
 
I'm running Mint 19.3 Mate 64 bit and humaxrw runs OK. I haven't knowingly installed 32 bit libraries (or don't remember), so I presume they're installed by default.
You can check as follows:
Code:
prpr@mint ~ $ dpkg -l | grep libc6
ii  libc6:amd64                                  2.27-3ubuntu1.2                                     amd64        GNU C Library: Shared libraries
ii  libc6:i386                                   2.27-3ubuntu1.2                                     i386         GNU C Library: Shared libraries
ii  libc6-dev:amd64                              2.27-3ubuntu1.2                                     amd64        GNU C Library: Development Libraries and Header Files
ii  libc6-i386                                   2.27-3ubuntu1.2                                     amd64        GNU C Library: 32-bit shared libraries for AMD64
prpr@mint ~ $ ./humaxrw
Humax disk not found

I get the following:

Code:
piers@piers-Latitude-E6410:~$ dpkg -l | grep libc6
ii  libc6:amd64                                2.27-3ubuntu1                                    amd64        GNU C Library: Shared libraries
ii  libc6-dbg:amd64                            2.27-3ubuntu1                                    amd64        GNU C Library: detached debugging symbols

I don't understand what I'm looking at well enough, or the requirements, to know if the missing items are the critical ones. Thoughts?

Does it make sense to you that, if the problem is missing libraries, the error message I get on trying to run humaxrw is "unable to execute ./humaxrw: No such file or directory"?
 
You may be able to 'fix' Linux version by installing the 32 bit compatibility library for libc. From this thread (link removed as I'm not alowed to post external ones yet!) it suggests that it can be done using apt-get install libc6:i386 but beware it may break your system.

The Windows version has a bug where it can give incorrect error messages. If you can get the Linux version working it should give the correct error message (my guess is I/O error).
Thanks for the help, and for the Humaxrw programme itself, which has saved my recordings on a couple of occasions already!

I have the 32-bit Mint 19.0 ISO and a spare 10GB drive which I could use to put Linux into my old desktop machine. Presumably if I were to do that, it would render the libc libraries unnecessary?
 
I don't understand what I'm looking at well enough, or the requirements, to know if the missing items are the critical ones. Thoughts?
As xyz321 said, you need to install the i386 (32 bit) libraries: sudo apt-get install libc6:i386
You can get rid of them afterwards, if you want, with: sudo apt-get purge libc6:i386
Does it make sense to you that, if the problem is missing libraries, the error message I get on trying to run humaxrw is "unable to execute ./humaxrw: No such file or directory"?
Yes, although it's not very helpful of bash not to tell you which file it can't find. I hate things like this - something's missing, it obviously knows what, but won't tell you.
 
I have the 32-bit Mint 19.0 ISO and a spare 10GB drive which I could use to put Linux into my old desktop machine. Presumably if I were to do that, it would render the libc libraries unnecessary?
You could boot and use that as-is - nothing would "stick", but you will be able to install and run humaxrw.
 
More evidence:

I ran badblocks on the spare disc, and after nearly an hour and 55% done I stopped it with no errors found. Similarly with the disc in the working Humax, ran it for about half an hour (approx 25%) and no bad blocks found.

I then ran it on the failed drive, and at only about 0.05% done it had found 179 errors!

It was apparently working OK only a week ago, so I find it hard to believe this is down to the accumulation of bad blocks in the usual way. Does it sound like there's been some kind of catastrophic failure (like read head misalignment)?

In your experience, do any of you think there's a hope of extracting data (viable recordings) from it?
 
Does it sound like there's been some kind of catastrophic failure
Probably.
In your experience, do any of you think there's a hope of extracting data (viable recordings) from it?
Probably not. I guess you would have to let badblocks complete and then see what humaxrw made of it, but expect corruption of some/all files depending...
 
Probably.

Probably not. I guess you would have to let badblocks complete and then see what humaxrw made of it, but expect corruption of some/all files depending...
As I understand it (correct me if I'm wrong) badblocks is principally a diagnostic tool, and in Linux you'd use fsck to fix errors, but when I asked about it on the Linux Mint forum someone replied that it would prbably make the disc non-Humax format in the process.

This is getting beyond my level of expertise. Does anybody know if there are any (Windows or Linux) disc repair tools that wouldn't mess up the non-standard file system?
 
As I understand it (correct me if I'm wrong) badblocks is principally a diagnostic tool, and in Linux you'd use fsck to fix errors, but when I asked about it on the Linux Mint forum someone replied that it would prbably make the disc non-Humax format in the process.
I think you are right that badblocks is a diagnostic tool when using the default options and I don't think you will do much harm using it. If you start using the options that do read and write operations then there is a significant risk of doing damage. Could you use something to show us the SMART statistics for the drive either smartctl under Windows or Crystal Diskinfo under Windows.

For what it is worth I have seen some drives from a PVR-9200T which were in an amazingly bad state.
 
I think you are right that badblocks is a diagnostic tool when using the default options and I don't think you will do much harm using it. If you start using the options that do read and write operations then there is a significant risk of doing damage. Could you use something to show us the SMART statistics for the drive either smartctl under Windows or Crystal Diskinfo under Windows.

For what it is worth I have seen some drives from a PVR-9200T which were in an amazingly bad state.

I've installed Smartmontools, and here's the output of the short test:

Code:
piers@piers-Latitude-E6410:~$ sudo smartctl -a /dev/sdb
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-4.15.0-112-generic] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.9
Device Model:     ST3160212ACE
Serial Number:    5LSAYG8S
Firmware Version: 3.ACB
User Capacity:    160,041,885,696 bytes [160 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA/ATAPI-7 (minor revision not indicated)
Local Time is:    Sun Aug 23 15:39:37 2020 BST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82)    Offline data collection activity
                    was completed without error.
                    Auto Offline Data Collection: Enabled.
Self-test execution status:      ( 121)    The previous self-test completed having
                    the read element of the test failed.
Total time to complete Offline
data collection:         (15556) seconds.
Offline data collection
capabilities:              (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003)    Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01)    Error logging supported.
                    General Purpose Logging supported.
Short self-test routine
recommended polling time:      (   1) minutes.
Extended self-test routine
recommended polling time:      (  54) minutes.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   112   082   006    Pre-fail  Always       -       45103940
  3 Spin_Up_Time            0x0003   092   092   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   088   088   020    Old_age   Always       -       12975
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       1
  7 Seek_Error_Rate         0x000f   084   060   030    Pre-fail  Always       -       250747235
  9 Power_On_Hours          0x0032   053   053   000    Old_age   Always       -       41587
 10 Spin_Retry_Count        0x0013   100   099   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       790
187 Reported_Uncorrect      0x0032   048   048   000    Old_age   Always       -       52
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   068   060   045    Old_age   Always       -       32 (Min/Max 30/32)
194 Temperature_Celsius     0x0022   032   040   000    Old_age   Always       -       32 (0 13 0 0 0)
195 Hardware_ECC_Recovered  0x001a   084   050   000    Old_age   Always       -       45103940
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       15
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       15
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0
202 Data_Address_Mark_Errs  0x0032   100   253   000    Old_age   Always       -       0

SMART Error Log Version: 1
ATA Error Count: 6102 (device log contains only the most recent five errors)
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 6102 occurred at disk power-on lifetime: 41585 hours (1732 days + 17 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 33 34 be f0  Error: UNC at LBA = 0x00be3433 = 12465203

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 f0 32 34 be f0 00      01:26:31.547  READ DMA EXT
  25 00 00 32 33 be f0 00      01:26:45.090  READ DMA EXT
  25 00 00 32 32 be f0 00      01:26:44.497  READ DMA EXT
  25 00 08 6f 01 00 f0 00      01:26:43.883  READ DMA EXT
  25 00 08 67 01 00 f0 00      01:26:31.551  READ DMA EXT

Error 6101 occurred at disk power-on lifetime: 41585 hours (1732 days + 17 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 32 33 be f0  Error: UNC at LBA = 0x00be3332 = 12464946

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 00 32 33 be f0 00      01:26:31.547  READ DMA EXT
  25 00 00 32 32 be f0 00      01:26:31.546  READ DMA EXT
  25 00 08 6f 01 00 f0 00      01:26:44.497  READ DMA EXT
  25 00 08 67 01 00 f0 00      01:26:43.883  READ DMA EXT
  25 00 08 5f 01 00 f0 00      01:26:31.551  READ DMA EXT

Error 6100 occurred at disk power-on lifetime: 41585 hours (1732 days + 17 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 32 32 be f0  Error: UNC at LBA = 0x00be3232 = 12464690

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 00 32 32 be f0 00      01:26:31.547  READ DMA EXT
  25 00 08 6f 01 00 f0 00      01:26:31.546  READ DMA EXT
  25 00 08 67 01 00 f0 00      01:26:31.546  READ DMA EXT
  25 00 08 5f 01 00 f0 00      01:26:43.883  READ DMA EXT
  25 00 08 57 01 00 f0 00      01:26:31.551  READ DMA EXT

Error 6099 occurred at disk power-on lifetime: 41584 hours (1732 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 f0 32 34 be f0  Error: UNC 240 sectors at LBA = 0x00be3432 = 12465202

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 f0 32 34 be f0 00      00:58:53.300  READ DMA EXT
  25 00 00 32 33 be f0 00      00:58:53.275  READ DMA EXT
  25 00 00 32 32 be f0 00      00:58:53.265  READ DMA EXT
  25 00 f0 82 36 02 f0 00      00:58:53.254  READ DMA EXT
  25 00 00 82 35 02 f0 00      00:58:53.209  READ DMA EXT

Error 6098 occurred at disk power-on lifetime: 41584 hours (1732 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 32 33 be f0  Error: UNC at LBA = 0x00be3332 = 12464946

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 00 32 33 be f0 00      00:58:53.300  READ DMA EXT
  25 00 00 32 32 be f0 00      00:58:53.275  READ DMA EXT
  25 00 f0 82 36 02 f0 00      00:58:53.265  READ DMA EXT
  25 00 00 82 35 02 f0 00      00:58:53.254  READ DMA EXT
  25 00 00 82 34 02 f0 00      00:58:53.209  READ DMA EXT

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed: read failure       90%     41587         247345970
# 2  Short offline       Completed: read failure       90%     41585         247345970

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
It's my first look at smartctl, and I'm still working out what it does, so if there's a specific test you think I should run, let me know!

Thanks.
 
Back
Top