NETGEAR is aware of a growing number of phone and online scams. To learn how to stay safe click here.
Forum Discussion
Griff_EWP
Oct 07, 2016Aspirant
After update to 6.6.0, can't access anything on Admin page
After updating my ReadyNAS 2100 from firmware 6.5.1 to 6.6.0 this morning, I can no loger access anything on the admin page. IF I can get the admin page to load after login, the page is blank. If I c...
- Oct 10, 2016
Hi guys, just an update here. The issue I had after the 6.6.0 update turned out to be a permissions issue with the ReadyNAS users. Apparently there were some orphaned accounts (ui's as the tech called them) created by the ReadyNAS OS (which I still don't understand how), but 2 1/2 hours with support fixed the issue. Just as a side note, I had the exact same issue on the same device when I did the update to 6.5.1 some time back. Again, support fixed that issue as well, so I'm still confused as to how this could happen again when no changes have been made since the last firmware update. Wish I could give a little more info on this, but the technician closed the chat log before I got a chance to copy it for my records. Thanks to all who posted replys to this thread.
StephenB
Oct 15, 2016Guru - Experienced User
rstribrn wrote:
...Just after upgrade to 6.6.0 + manually performed "apt-get upgrade" using SSH.
FWIW, Netgear definitely doesn't recommend this.
rstribrn
Oct 15, 2016Aspirant
I know. I read the warning when I enabled SSH access (just after I bought my RN204). Reason: Disabling (annoying) LED diode flickering.
I use Linux systems at work/home for more than a decade, so I can quite easily fix problems like this...
Anyway, good luck with this problem. Hopefully you'll find some easy user-friendly solution.
Rostislav Stříbrný
- Tonez90Nov 12, 2016Aspirant
Hi I have a similar problem experienced by others in the forum. I have been using a RN104 NAS Drive (12TB total) for over a year now and upgraded to v6.5.1 unfortunately I can no longer get into the dashboard. The drive is functioning correctly. I use Windows to move files in an out. All settings on the NAS are basic. I can use RAIDar 6.x to get logs etc but when I go to log in it simply comes up with the splash screen and version.
I noted that disk two has had some errors. Will this cause this sort of issue?
I was thinking of taking all drives out and just putting a small drive (one ) in to upgrade the firmware and then once upgraded put the old disks (x4) back in. Will this work or will it do nothing?
I think the NAS drive is good for home and I primarily use it for media center and backup of computers.
Any help would be appreciated.
Regards
Tonez90 (Tony)
- StephenBNov 14, 2016Guru - Experienced User
Tonez90 wrote:
I was thinking of taking all drives out and just putting a small drive (one ) in to upgrade the firmware and then once upgraded put the old disks (x4) back in. Will this work or will it do nothing?
If you do this, what normally happens with OS-6 NAS is that the boot loader compares the OS on the disks with the OS on the flash. Whichever OS is newer wins (If the flash is newer, the OS on the disks is upgraded; if the OS on the disks is newer, then the flash is upgraded).
I don't think its likely to solve anything for you. What firmware were you running before?
- mdgm-ntgrNov 14, 2016NETGEAR Employee Retired
Can you send in the logs you downloaded using RAIDar (see the Sending Logs link in my sig)?
- 8ohmhNov 17, 2016Guide
Hello,
Ok, I've wrote here a - more or less - huge and (!) incomplete PHP (!) Script for restoring ReadyNAS 204 6.60 Disk running endlessly in Encryption Gauge display. IT IS MORE TO BE MEANT AS GUIDELINE FOR RESTORING ReadyNAS 204 6.6, NOT RECOVERING
WARNING:
1. The script is ONLY for experienced User, meaning LET YOU HELP YOU BY A LINUX USER AND LET HIM DO THE NEEDED MODIFIC.
2. The script should be only running by a (Rescue) Linux Version with PHP installed (Unfortunately I haven't coded in Perl for running on the NAS directly, but this you should always avoid). If someone wants, he can copy it (under GNU Licence, modify it to PERL or whatever and put it in his Website - WITH mention as me as source :)
3. The scripts HAS TO BE modified to fit in your environment
4. The script is NO tool for recovering lost disk encryption keys (For this you HAVE to use either a very expensive data recovery firm OR a very, very, very,.... experienced Linux user, using hexdump, grep, strings etc stuff)
5. The scripts restores (ONLY with available disk keys AND ONLY for OS 6.6) the last state, so you can restart your NAS, access the disk and copy immediately to an USB Disk cloning stationI DON'T TAKE ANY RESPONSIBILITY FOR ANY FURTHER HARM OF YOUR NAS AND YOUR DATA. YOU'VE BEEN WARNED! :)
GET_DISK_BACK.PHP
<?php
//
// GET_READYNAS_204_0660_DISK_BACK.PHP
// by 8ohmh
// $your_user_name="user"; $home="/home/user"; #TODO $ssh_root="/nas_tmp"; $workdir="${home}/readynas/get_disk_back"; # PUT HERE IN AN IMAGE OF YOUR RESTARTED NAS $readynas_clean_image="${workdir}/clean_image"; require "${workdir}/write_ini_files.php"; $number=0; $template_volume_name="!!!<PUT HERE THE NAME OF YOUR LOST DISK>!!!"; $template_volume_name_url_enc="${template_volume_name}\\x2d"; $template_volume_name_url_enc_0="${template_volume_name}\\x2d${number}"; $dst_volume_name="!!!<PUT HERE THE NAME OF YOUR NAS>!!!"; $volume_nr=0; $failed_volume_name="!!!<NAME OF YOUR LOST DISK!!!>"; $failed_volume_key_file_name="${failed_volume_name}.key"; # $failed_volume_uuid="label-117c5e96"; #TODO $failed_volume_uuid="!!!<PUT HERE IN THE UUID-LABEL OF YOUR DISK - LOOK ABOVE LINE>!!!"; #TODO $failed_volume_name_vol_nr="${failed_volume_name}-${volume_nr}"; $failed_volume_name_url_enc="${failed_volume_name}\\x2d"; $failed_volume_name_url_enc_0="${failed_volume_name}\\x2d${volume_nr}"; #TODO $key_filepath_on_nas="/run/systemd/cryptsetup/${failed_volume_name}"; $failed_volume_dev_md="/dev/md/${failed_volume_name_vol_nr}"; $failed_volume_dev_mapper="/dev/mapper/${failed_volume_name_vol_nr}"; $uuid_url_disk_name="${failed_volume_uuid}:${failed_volume_name_url_enc}"; # test for var/run $var_run_folder="/run"; $var_run_systemd="${var_run_folder}/systemd"; $var_readynasd="/var/readynasd"; $var_cryptsetup="${var_run_folder}/cryptsetup"; $generator_dir="${var_run_systemd}/generator"; $pilgrim_list_path="${var_readynasd}/pilgrim.list"; # cryptsetup.target.requires ############################ # ${volume_name}-key.service $template_file_name="${template_volume_name}-key.service"; $dst_file_name="${failed_volume_name}-key.service"; # $dirname="/cryptsetup.target.requires"; $template_dir_path="${readynas_clean_image}${generator_dir}"; $dst_dir_path="${ssh_root}${generator_dir}"; $template_file_path="${template_dir_path}/${template_file_name}"; $dst_file_path="${dst_dir_path}/${dst_file_name}"; //if(!is_dir($dst_dir_path)) //{ mkdir($dst_dir_path, 0755, true); } $file_content=parse_ini_file($template_file_path, true); printf("\n\n${dst_file_path}\n"); #print_r($file_content); $file_content["Unit"]["Description"]= "Description=Cryptography Key Search" ." for ${failed_volume_name}"; $file_content["Service"]["ExecStart"]= "/usr/bin/rnutil search_for_key ${failed_volume_name} " ."/run/systemd/cryptsetup/${failed_volume_key_file_name} 600"; printf("\n"); print_r($file_content); write_php_ini($file_content, $dst_file_path); mkdir($dst_dir_path, 0755, true); ############################## # cryptsetup.target.requires ###################### # ${volume_name}.mount $template_file_name="${template_volume_name}.mount"; $dst_file_name="${failed_volume_name}.mount"; $template_dir_path="${readynas_clean_image}${generator_dir}"; $dst_dir_path="${ssh_root}${generator_dir}"; $template_file_path="${template_dir_path}/${template_file_name}"; $dst_file_path="${dst_dir_path}/${dst_file_name}"; $scanner_type="NORMAL"; #TODO $file_content= parse_ini_file($template_file_path, true, INI_SCANNER_RAW); printf("\n\n${dst_file_path}\n"); $file_content["Mount"]["What"]= "/dev/disk/by-label/${failed_volume_uuid}:${failed_volume_name}"; $file_content["Mount"]["Where"]= "/${failed_volume_name}"; mkdir($dst_dir_path, 0755, true); write_php_ini($file_content, $dst_file_path); print_r($file_content); ###################### # systemd-cryptsetup@!!!<PUT HERE THE NAME OF YOUR LOST DISK>!!!\x2d0.service $template_file_name= "systemd-cryptsetup@${template_volume_name}\\x2d0.service"; #TODO $dst_file_name= "systemd-cryptsetup@${failed_volume_name_url_enc_0}.service"; #TODO $template_dir_path="${readynas_clean_image}${generator_dir}"; $dst_dir_path="${ssh_root}${generator_dir}"; $template_file_path="${template_dir_path}/${template_file_name}"; $dst_file_path="${dst_dir_path}/${dst_file_name}"; $scanner_type="NORMAL"; $file_content=parse_ini_file($template_file_path, true, INI_SCANNER_RAW); printf("\n\n${dst_file_path}\n"); $file_content["Unit"]["After"]= "cryptsetup-pre.target ${failed_volume_key_file_name}"; //?? $file_content["Unit"]["ExecStart"]= "/run/systemd/cryptsetup/${failed_volume_key_file_name}"; $file_content["Unit"]["RequiresMountsFor"]= "/run/systemd/cryptsetup/${failed_volume_key_file_name}"; $file_content["Unit"]["BindsTo"]= "dev-md-${failed_volume_name_url_enc_0}.device"; $file_content["Unit"]["After"]= "dev-md-${failed_volume_name_url_enc_0}.device"; $file_content["Service"]["ExecStart"]= "/lib/systemd/systemd-cryptsetup attach " ."'${failed_volume_name_vol_nr}' " ."'${failed_volume_dev_md}' ". "'${key_filepath_on_nas}' '' ;". " /sbin/btrfs device scan '${failed_volume_dev_mapper}'"; $file_content["Service"]["ExecStop"]= "/lib/systemd/systemd-cryptsetup " ."detach '${failed_volume_name_vol_nr}'"; mkdir($dst_dir_path, 0755, true); write_php_ini($file_content, $dst_file_path); $systemd_cryptsetup_link_filename="${dst_file_name}"; $systemd_cryptsetup_link_path="${dst_file_path}"; $service_file_name=""; $service_file_path=""; # print_r($file_content); #write_php_ini($file_content, $dest_file_path); # FOLLOWING STUFF HAS TO BE DONE: # # 1 dev disk by id # 2 dev mapper # 1 dev md # NOW CREATE LINKS #1 # /nas-ssh/run/systemd/generator/cryptsetup.target.requires $target_path="$systemd_cryptsetup_link_path"; $link_dir= "${ssh_root}${generator_dir}" ."/cryptsetup.target.requires"; $link_path= "${link_dir}" ."/${systemd_cryptsetup_link_filename}"; print "$target_path\n$link_path\n\n"; mkdir($link_dir, 0755, true); symlink($target_path,$link_path); exit; #2 # dev-disk-by\x2dlabel-117c5e96:data.device.d $target_path="$device_timeout_config_path"; $link_dir= "${ssh_root}${generator_dir}" ."/dev-disk-by\x2d${failed_volume_uuid}:" ."${failed_volume_name_url_enc_0}.device.d"; $link_path= "${link_dir}" ."/${device_timeout_config_path}"; print "$target_path\n$link_path\n\n"; mkdir($link_dir, 0755, true); symlink($target_path,$link_path); exit; #3 # dev-mapper-data\x2d0.device.d $target_path="${device_timeout_config_path}"; $link_dir= "${ssh_root}/${generator_dir}" ."/dev-mapper-${failed_volume_name_vol_nr}.device.d"; $link_path= "${systemd_cryptsetup_link}" ."${dst_dir}/${systed_cryptsetup_link_filename}"; if(!is_dir($link_dir)) { mkdir($dir_path, 0755); } print "$target_path $link_path"; symlink(); #4 # dev-mapper-data\x2d0.device.requires $target_path="$systemd_cryptsetup_link_path"; $link_dir= "${ssh_root}/${generator_dir}" ."/dev-mapper-${failed_volume_name_url_enc}". "\x2d${failed_volume_name_vol_nr}.device.requires"; #TODO $link_path= "${systemd_cryptsetup_link}" ."${dst_dir}/${systed_cryptsetup_link_filename}"; mkdir($dir_path, 0755); symlink($target_path,$link_path); print "$target_path $link_path"; #5 $target_path="$systemd_cryptsetup_link_path"; $link_dir= "${ssh_root}/${generator_dir}" ."/dev-md-${failed_volume_name_url_enc}" ."\x2d${failed_volume_name_vol_nr}.device.wants"; $link_path= "${systemd_cryptsetup_link}" ."${dst_dir}/${systed_cryptsetup_link_filename}"; mkdir($dir_path, 0755); print "$target_path $link_path"; symlink($target_path,$link_path); $counter=0; /* #$output=passthru("sed -e 's/$search/$replace/g' $oldfilename > $newfilename"); #$output=passthru("sed -e 's/.*run\-cryptsetup\-\.searchkeys.\*' '${pilgrim_list_path}' > '${pilgrim_list_path}_temp'"); !!!!! * HAS TO BE DONE BECAUSE ENDLESS PILGRIM SEARCH FOR ENCRYPTION KEYS //# TODO Check for repeatedly run-cryptsetup //# run-cryptsetup-.searchkeys-data_a.mount #!/bin/bash has_still_entries="grep -i 'run\-cryptsetup\-\.searchkeys' "$pilgrim_list_path" /while [ ! -z "$has_still_entries"] ; do has_still_entries="$(grep -i "run\-cryptsetup\-\.searchkeys")" counter=$(expr counter + 1) if [ $counter > 1000 ]; then # DO SOME rpl # (apt-get install rpl) fi done # TODO removing the unused # cat "${failed_root}/etc/fstab" >> "${ssh_root}/etc/fstab" exit; */ #TODO # dev-disk-by\x2dlabel-117c5e96:data.device.d $target_path="$systemd_cryptsetup_link_path"; $link_dir= "${ssh_root}/${generator_dir}" ."/dev-disk-by\\2xd${failed_volume_uuid}:" ."${failed_volume_uuid}.device.d"; $link_path= "${link_dir}" ."/${device_timeout_config_path}"; print "$target_path $link_path"; mkdir($link_dir, 0755, true); symlink($target_path,$link_path); symlink($target_path,$link_path); ?>WRITE_INI_FILE.PHP
<?php
// TAKEN FROM STACKOVERFLOW.COM
// function safefilerewrite($fileName, $dataToSave) { if ($fp = fopen($fileName, 'w')) { $startTime = microtime(TRUE); do { $canWrite = flock($fp, LOCK_EX); // If lock not obtained sleep for 0 - 100 milliseconds, to avoid collision and CPU load if(!$canWrite) usleep(round(rand(0, 100)*1000)); } while ((!$canWrite)and((microtime(TRUE)-$startTime) < 5)); //file was locked so now we can store information if ($canWrite) { fwrite($fp, $dataToSave); flock($fp, LOCK_UN); } fclose($fp); } } function write_php_ini($array, $file) { $res = array(); foreach($array as $key => $val) { if(is_array($val)) { $res[] = "[$key]"; foreach($val as $skey => $sval) $res[] = "$skey = ".(is_numeric($sval) ? $sval : '"'.$sval.'"'); } else $res[] = "$key = ".(is_numeric($val) ? $val : '"'.$val.'"'); } safefilerewrite($file, implode("\r\n", $res)); } ?>
Related Content
NETGEAR Academy
Boost your skills with the Netgear Academy - Get trained, certified and stay ahead with the latest Netgear technology!
Join Us!