Troubleshooting Debian on QNAP TS-409

QNAP TS-409 from the front

This page describes common problems that users of Debian on the QNAP TS-409 have run into. If you have any problems with your QNAP TS-409, either while trying to install Debian or when running Debian, please look through this page carefully to see whether you can find a solution. If your problem is not covered here, feel free to contact the debian-arm list for help.

Debian installer

I hear a beep after flashing Debian installer but cannot connect with SSH

After writing the Debian installer to flash and rebooting, you have to wait a few minutes for it to start and then connect by SSH to perform the installation. When the installer is ready to accept SSH connections, it will make one short beep and set the status LED to green.

Some people report that they are not able to connect to their QNAP via SSH at this point. The most common problem is that the wrong IP address is used to connect to the QNAP. Debian installer will read the network configuration from the original QNAP firmware and use that but in some cases different network settings have to be used (for example, because the settings in the original firmware were incomplete).

If you cannot connect to your QNAP, here are some things you can try:

  • Read the explanation of how the Debian installer creates the network settings.
  • Check the logs of your DHCP server to see whether your QNAP has requested an IP address. Alternatively, you can also install the `nast` package on your PC and run `nast -m` to find all machines on your network. The MAC address of your QNAP probably starts with `00:08:9B`. The hostname is probably NAS followed by the last 3 elements of the MAC address (NASCCDCA1 for 00:08:9B:CC:DC:A1).
  • Remove all hard drives from the QNAP. In this case, Debian installer won't find your existing network configuration on disk and will use DHCP.
  • If everything else fails, disconnect the Ethernet cable from your QNAP and start your device again. In this case, it is possible that the IP address `192.168.1.100` is used.

Connections to the QNAP via SSH are possible but my password is not accepted

Some users report that they can connect to their QNAP via SSH just fine but that the password is not accepted. The account details depend on where you are in the installation process. If you have just flashed the installer and want to install Debian, you have to connect with the user installer and the password install. However, after you have completed the installation, you have to login with your newly created user. You have to use the password you chose during the installation. You cannot login as installer as this point anymore since this login is only valid for the installer. Note that you also cannot login as root user since that option is disabled in SSH by default.

Debian installer fails to download components

The Debian installer that's written to flash is not the complete installer so further components have to be downloaded from the network. Some people say that the installer starts fine and they can login via SSH but then the installer fails to download components from the network. The installer might say that it cannot download the Release file.

The reason for this problem is usually wrong network settings. It's possible that either a wrong DNS server or a wrong gateway are specified. To find out what the problem is, go to the menu in the Debian installer (you might have to select go back to get to the menu) and execute a shell (last but one point in the menu). Now try to download something:

wget http://130.89.148.14/
wget http://www.debian.org/

If the first command succeeds but the second one fails, the DNS server is wrong (check the file /etc/resolv.conf). If both commands fail to download something, the gateway is probably wrong. You can check your network settings this way:

ip address
ip route

The best way to fix the network settings are to update the configuration of your DHCP server and to start the installer on your QNAP again.

Formatting the disk is stuck at 33%

Formatting the disk may take a long time, especially if you have a large disk. Unfortunately, the progress bar is not updated while the disk is being formatted so you may think that it is stuck (at 33%). If this happens, just be patient. The installer is in fact formatting your disk.

Make the system bootable step fails

There can be a number of reasons why the "Make the system bootable" step fails. If this happens, open a shell in the installer and look at /var/log/syslog. Look towards the end for messages involving "flash-kernel".

The QNAP TS-409 only has 4 MB for the ramdisk so the most likely cause is that the ramdisk doesn't fit in flash. You can find a message like this in /var/log/syslog:

Not enough space for initrd in MTD 'RootFS1' (need 4647643 but is actually 4194304).

If this is the case, you can apply the following workaround:

echo "COMPRESS=xz" > /target/etc/initramfs-tools/conf.d/compress

This configures initramfs-tools to use XZ compression, which offers better compression, and might mean that the ramdisk will now fit in flash. Unfortunately, it might still not fit if you use RAID or LVM. In this case, install without RAID or LVM.

Exit the shell and repeat the "make the system bootable" step.

Debian

My QNAP no longer boots

There can be many reasons why a QNAP running Debian no longer boots, ranging from a broken disk, to a bad upgrade or configuration. Unfortunately, it's often impossible to say what the problem is without the use of a serial console. The best solution is to connect a serial console to see what the problem is but not everyone can do that.

Before you do anything, you should listen. Maybe your QNAP is performing its regular filesystem check and this will delay the boot process. This delay can be considerable if you have a large disk. If you can hear that your hard drive is being accessed, just wait for a few hours.

If your hard drive is quiet and Debian doesn't start, you should try is to connect your USB drive to another PC and to check the log files:

sudo mount /dev/sda2 /mnt

Now you can look at the files in /mnt/var/log, in particular at the file syslog. If this file doesn't contain any information about the last boot attempt (which is quite likely), you can enable bootlogd which will record early boot messages:

sudo sed -i "s/BOOTLOGD_ENABLE=No/BOOTLOGD_ENABLE=yes/" /mnt/etc/default/bootlogd
sudo umount /mnt

Connect the drive to your QNAP, boot it, wait a few minutes, then turn it off and connect the drive to your PC again and mount it. Now look at the file /mnt/var/log/boot which might tell you more.

One common cause for boot problems is related to filesystem checks and running fsck over all partitions may help. There are several reasons why this might help. For example, the Linux ext3 filesystem has to be checked periodically. Even though Debian has been configured not to prompt the user during the filesystem check, it might still do so in case of serious errors. Without a serial console, this prompt means that your QNAP will hang waiting for user input.

Turn your QNAP off, connect the disk to another machine running Linux and run fsck over all partitions containing data. On a normal Debian installation, this includes sda1 (/boot), sda2 (/) and sda6 (/home):

sudo fsck /dev/sda1
sudo fsck /dev/sda2
sudo fsck /dev/sda6

If none of this helps, I'm afraid you probably have to connect a serial console or use the recovery mode to flash the Debian installer and to perform a new installation.

The ramdisk doesn't fit in flash

The flash partition on the QNAP TS-409/TS-409U is rather small and there is only limited space for the ramdisk (initrd). This may lead to errors after kernel upgrades because the new ramdisk no longer fits in flash, especially if you use RAID or LVM. The error messages say "The initial ramdisk is too large" and "Not enough space for initrd in MTD 'RootFS1'". To avoid this problem, you can configure your system to use xz compression of the ramdisk, which will result in a much smaller ramdisk compared to the default compression with gzip.

Please follow these steps to enable xz compression of the ramdisk. First, configure initramfs-tools:

echo "COMPRESS=xz" | sudo tee /etc/initramfs-tools/conf.d/compress

Second, ensure that the xz-utils package is installed:

sudo apt install xz-utils

Finally, update the ramdisk:

sudo update-initramfs -u

If you use a custom kernel rather than a kernel provided by Debian, please ensure that the CONFIG_RD_XZ setting is enabled.

Unfortunately, several components have grown substantially in Debian 10 (buster), which means that the ramdisk might still not fit into flash, in particular if you use LVM.