For some reason, I keep persisting with my QNAP TS-639 II, despite the fact that every time something goes wrong with it I spend hours trying to revive it. In any case, I recently had an issue with a disk showing SMART warnings. I figured it would be a good idea to replace it before it became a big problem. I had some disks on the shelf from the last upgrade. When I popped one in, however, it sent me this e-mail.
Server Name: qnap639 IP Address: 192.168.0.110 Date/Time: 28/05/2015 06:27:00 Level: Warning The firmware versions of the system built-in flash (4.1.3 Build 20150408) and the hard drive (4.1.2 Build 20150126) are not consistent. It is recommended to update the firmware again for higher system stability.
Not such a great result. I ignored the warning and manually rebuilt the /dev/md0 device. When I rebooted, however, I still had the warning. And a missing disk from the md0 device (but that’s a story for later). To get around this problem, it is recommended that you reinstall the array firmware via the shell. I took my instructions from here. In short, you copy the image file to a share, copy that to an update directory, run a script, and reboot. It fixed my problem as it relates to that warning, but I’m still having issues getting a drive to join the RAID device. I’m currently clearing the array again and will put in a new drive next week. Here’s what it looks like when you upgrade the firmware this way.
[/etc/config] # cd / [/] # mkdir /mnt/HDA_ROOT/update mkdir: Cannot create directory `/mnt/HDA_ROOT/update': File exists [/] # cd /mnt/HDA_ROOT/update [/mnt/HDA_ROOT/update] # ls [/mnt/HDA_ROOT/update] # cd / [/] # cp /share/Public/TS-639_20150408-4.1.3.img /mnt/HDA_ROOT/update/ [/] # ln -sf /mnt/HDA_ROOT/update /mnt/update [/] # /etc/init.d/update.sh /mnt/HDA_ROOT/update/TS-639_20150408-4.1.3.img cksum=238546404 Check RAM space available for FW update: OK. Using 120-bit encryption - (QNAPNASVERSION4) len=1048576 model name = TS-639 version = 4.1.3 boot/ bzImage bzImage.cksum config/ fw_info initrd.boot initrd.boot.cksum libcrypto.so.1.0.0 libssl.so.1.0.0 qpkg.tar qpkg.tar.cksum rootfs2.bz rootfs2.bz.cksum rootfs_ext.tgz rootfs_ext.tgz.cksum update/ update_img.sh 4.1.3 20150408 OLD MODEL NAME = TS-639 Allow upgrade Allow upgrade /mnt/HDA_ROOT/update 1+0 records in 1+0 records out tune2fs 1.41.4 (27-Jan-2009) Setting maximal mount count to -1 Setting interval between checks to 0 seconds Update image using HDD ... bzImage cksum ... Pass initrd.boot cksum ... Pass rootfs2.bz cksum ... Pass rootfs_ext.tgz cksum ... Pass rootfs_ext.tgz cksum ... Pass qpkg.tar cksum ... Pass Update RFS1... mke2fs 1.41.4 (27-Jan-2009) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 13832 inodes, 55296 blocks 0 blocks (0.00%) reserved for the super user First data block=1 Maximum filesystem blocks=56623104 7 block groups 8192 blocks per group, 8192 fragments per group 1976 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 21 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. Checking bzImage ... ok Checking initrd.boot ... ok Checking rootfs2.bz ... ok Checking rootfs_ext.tgz ... ok Update RFS2... mke2fs 1.41.4 (27-Jan-2009) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 13832 inodes, 55296 blocks 0 blocks (0.00%) reserved for the super user First data block=1 Maximum filesystem blocks=56623104 7 block groups 8192 blocks per group, 8192 fragments per group 1976 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 31 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. 1+0 records in 1+0 records out Update Finished. Make a Backup /share/MD0_DATA qpkg.tar cksum ... Pass set cksum [238546404] [/] # reboot [/] #