Sunday, November 10, 2013

Fixing Raspberry Pi filesystem corruption

While Raspberry Pi is a computer in its core, it is treated like an embedded device in most cases -- we can't expect a proper shutdown of Pi in most cases. This results in corruption of the / (root) file system (ext4) due to unclean unmount. 

In case you have been reinstalling Pi on to the sdcard every time this happens, you don't really have to reinstall. In most cases, mount the card via a card reader and run 

sudo fsck.ext4 /dev/xxxx  [xxxx the device file of the root partition]

(I assume linux by default). This should fix the / file system and the card will let your Pi boot now. If this doesn't help, try fixing the /boot partition:

sudo fsck.vfat  /dev/xxxx  [xxxx - the device file of the boot partition]

That said, you don't really have to do this. The clean and guaranteed protection against this problem could be provided by mounting the filesystem as read-only. Thus the filesystem is completely intact and will have no chance of corruption. In most cases, this should be fine (unless you have a reason to persist something on to the root filesystem). If you still need to write something to disk, write it to a different partition so it doesn't prevent Pi from booting if that goes corrupted.

How to mark the / and /boot partitions read-only:

You could do this from Pi itself, or on a different machine. Just edit /etc/fstab and add 'ro' in the flags as shown below:

/dev/mmcblk0p1  /boot       vfat    defaults,ro                0       2
/dev/mmcblk0p2  /           ext4    defaults,ro,noatime        0       1

Now reboot the Pi and it should boot with both these mount points in read-only mode. You could do a mount to verify, it should look something similar to this:

/dev/root on / type ext4 (ro,noatime,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=216108k,nr_inodes=54027,mode=755)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=44876k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=89740k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
/dev/mmcblk0p1 on /boot type vfat (ro,relatime,fmask=0022, dmask=0022, codepage=cp437, iocharset=ascii,shortname=mixed, errors=remount-ro)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=89740k)

Note: Some services (like apache2) might fail to start, because they can't write to disk. You might have to check individual services to figure out what they are trying to write and resolve it appropriately. For eg., apache2 writes log files /var/log/apache2. It is best to disable logging. If there is not too much logging, you could map the log folder to /tmp (tmpfs -- as shown in mount).

as root:
mkdir /tmp/apache2 
chmod a+wx /tmp/apache2 
cd /var/log
rm -rf apache2
ln -s /tmp/apache2 apache2

There is no worry of file system corruption any more. You could switch off Pi any time. I have been using this setup (in my PowerStrip Project) for many months now, without issues.

15 comments:

  1. will this tip be relevant for the raspbian OS now in 2016...or is this already included by default??

    ReplyDelete
  2. Are you looking for quick an urgent loan no collateral required with relatively low interest rate as low as 2%? We offer business loan, personal loan, home loan, auto loan,student loan, debt shortest time possible, contact our specialist for advice and finance planning. If you need a quick loan contact us via Email

    housingfinance22@gmail.com
    Contact us on whatspp +447513195409
    Mr Osman Ibrahim

    ReplyDelete
  3. ARE YOU RETARDED? What's the bleeding point of a computer that CAN'T STORE INFORMATION?????

    ReplyDelete
  4. I'm sorry. I've been running around after this sodding thing all week, I even bought a new computer monitor for it and it STILL won't work. I just don't understand why we have a problem building computers - the first British home computer rolled off the line in 1980 and they're STILL a giant pile of steaming crap.

    ReplyDelete
  5. Hello Everybody,
    My name is Mrs Sharon Sim. I live in Singapore and i am a happy woman today? and i told my self that any lender that rescue my family from our poor situation, i will refer any person that is looking for loan to him, he gave me happiness to me and my family, i was in need of a loan of $250,000.00 to start my life all over as i am a single mother with 3 kids I met this honest and GOD fearing man loan lender that help me with a loan of $250,000.00 SG. Dollar, he is a GOD fearing man, if you are in need of loan and you will pay back the loan please contact him tell him that is Mrs Sharon, that refer you to him. contact Dr Purva Pius, call/whats-App Contact Number +918929509036 via email:(urgentloan22@gmail.com) Thank you.

    ReplyDelete
  6. Hello Everybody,
    My name is Mrs Sharon Sim. I live in Singapore and i am a happy woman today? and i told my self that any lender that rescue my family from our poor situation, i will refer any person that is looking for loan to him, he gave me happiness to me and my family, i was in need of a loan of $250,000.00 to start my life all over as i am a single mother with 3 kids I met this honest and GOD fearing man loan lender that help me with a loan of $250,000.00 SG. Dollar, he is a GOD fearing man, if you are in need of loan and you will pay back the loan please contact him tell him that is Mrs Sharon, that refer you to him. contact Dr Purva Pius, call/whats-App Contact Number +918929509036 via email:(urgentloan22@gmail.com) Thank you.

    ReplyDelete
  7. Are you looking for a business loan, personal loans, mortgage loans, car loans, student loans, unsecured consolidation loans,project funding etc ... Or simply refuse loan from a bank or financial institution for one or more reasons? We are the right solutions for credit! We offer loans to businesses and individuals with low and affordable interest rate of 2%. So if you are Interested in an urgent and secured loan. For more information kindly email us today Via: elegantloanfirm@hotmail.com.



    ReplyDelete
  8. HELLO, I am Rebecca Michaelson by name living in Europe. Here is a good news for those interested. There is away you can earn money without stress contact (THOMAS FREDDIE) for a blank [ATM CARD] today and be among the lucky once who are benefiting from this cards. This PROGRAMMED blank ATM card is capable of hacking into any ATM machine anywhere in the world. I got my master card from a good Hacker on the internet, with this ATM Card I am able to collect $5000 dollars every day via contacts:
    +1 (985)-465-8370 {thomasunlimitedhackers@gmail.com}
    I was very poor but this card have made me rich and happy, If you want to get this opportunity to become rich and establish your business then apply for this Master card, I am so happy about this because i got mine last week and I have used it to get $240,000.00 dollars from THOMAS FREDDIE UNLIMITED Hackers is giving out the card just to help the poor and needy and they ALSO OFFER FINANCIAL ASSISTANCE. get yours from THOMAS FREDDIE UNLIMITED HACKERS today. Kindly contact them by Email thomasunlimitedhackers@gmail.com

    Thank You and God bless

    ReplyDelete
  9. GET RICH WITH BLANK ATM CARD ... Whats-app: +1(209)-643-1515

    I want to testify about Oscar White blank ATM cards which can withdraw money from any ATM machines around the world. I was very poor before and have no job. I saw so many testimony about how Oscar White hackers send them the ATM blank card and use it to collect money in any ATM machine and become rich. ( oscarwhitehackersworld@gmail.com ) I email them also and they sent me the blank ATM card. I have use it to get 75,000 dollars. withdraw the maximum of 4,500 USD daily. Oscar White is giving out the card just to help the poor. Hack and take money directly from any ATM machine vault with the use of ATM programmed card which runs in automatic mode.
    Email:oscarwhitehackersworld@gmail.com
    Text & Call or Whats-app: +1(209)-643-1515

    ReplyDelete