I own a Linux powered Synology dedicated Network Attached Storage (NAS) server for my home office use. How do I run fsck on Synology DiskStation that offers RAID storage using Linux command line options over an ssh session?
This server is powered by Linux operating system and comes with the e2fsck program that can be used to check the ext3/ext4 family of file systems.
| Tutorial details | |
|---|---|
| Difficulty | Intermediate (rss) |
| Root privileges | Yes |
| Requirements | Synology server |
First, you need to login using ssh interface. The syntax is as follows:
ssh root@nas01
ssh root@nas-server-ip-here
Once logged in you need to stop running services such as smb/nfs/pgsql and so. To see current volumes or mount point type the following command:
dfSample outputs:
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 2451064 437412 1911252 19% /
/dev/root 2451064 437412 1911252 19% /
/tmp 255700 272 255428 1% /tmp
/dev/vg1/volume_1 2879621632 176443652 2703075580 7% /volume1
/dev/vg1/volume_1 2879621632 176443652 2703075580 7% /opt
To see current services accessing the /volume1/ and /opt/, run:
lsof /opt/
lsof /volume1/
Sample outputs:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME postgres 5052 admin cwd DIR 253,0 4096 18 /volume1/@database/pgsql postgres 5057 admin cwd DIR 253,0 4096 18 /volume1/@database/pgsql postgres 5057 admin 17u REG 253,0 16777216 3539006 /volume1/@database/pgsql/pg_xlog/000000010000000000000006 postgres 5058 admin cwd DIR 253,0 4096 18 /volume1/@database/pgsql lsof 8284 root txt REG 253,0 125544 4068473 /opt/sbin/lsof lsof 8285 root txt REG 253,0 125544 4068473 /opt/sbin/lsof
You need to stop pgsql service, enter:
/usr/syno/etc/rc.d/S20pgsql.sh stop
Sample outputs:
Stopping PostgreSQL...
In short, you need to stop services that are running and accessing data shares such as SMB,NFS,pgsql,mysql and so on. You can use web interface to stop these services too. cd to /usr/syno/etc/rc.d/ and stop all file sharing services. Finally, unmount volumes as follows:
umount /volume1/
umount /opt
Verify that /opt and /volume1/ are unmounted:
df
Sample outputs:
Filesystem 1K-blocks Used Available Use% Mounted on /dev/md0 2451064 437408 1911256 19% / /tmp 255700 264 255436 0% /tmp
Run fsck on ext4 file system:
fsck.ext4 -v /dev/vg1/volume_1
OR
e2fsck -p -y -f -v /dev/vg1/volume_1
Sample outputs:
e2fsck 1.41.12 (17-May-2010) 1.41.12-2198: is cleanly umounted, 474816/182845440 files, 55587266/731381760 blocks (check after next mount)
Reboot the server:
reboot
Check out related media
This tutorial is also available in a quick video format:
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop












{ 7 comments… read them below or add one }
Good article!
But I have a problem when I’ve tried to check the file system. The problem is the command “lsof” that isn’t supported in my synology. I have the DSM 4.1
How can I use the “lsof” command or other to check for services which have any open file?
Thanks
Jorge
I’m also using DSM 4.1. The lsof command is not part of DSM and you need to install it. I will cover it up in another article soon.
Ok, thanks
I’ll wait for your article
Hi Vivek – is the article available yet?
Thanks for the article! But, unfortunately we don’t have the lsof command on our Synology NAS neither, and the whole article is based on that :(
Easier way to do it would be this:
syno_poweroff_task
umount /volume1
fsck.ext4 -pvf /dev/md2
At least that’s how it worked for me.
I ran into an issue running the e2fsck command – it seems that the p and y flag conflict.
from the docs:
-y
Assume an answer of ‘yes’ to all questions; allows e2fsck to be used non-interactively. This option may not be specified at the same time as the -n or -p options.
I just stick with p.