Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

My company is considering the use of Ubuntu as an OS for use on a hardware device.

It would be installed on compact flash drive - apparently this is not standard flash drive but a specific type of memory that is supposed to "cope" with immediate power shutdown (I am not sure how this is achieved but they are supposedly a "high end" card).

The units that would be run using Ubuntu are the type of units that will not be gracefully shutdown - the power cable would be removed and that is that.

Can anybody give me some advice on the potential problems that can occur? Is Ubuntu a good system that can deal with this kind of power outage and reboot successfully on next startup?

I realise that nothing is unbreakable, but is it a commonly used OS for an embedded setup? Is it asking for trouble to use Ubuntu in this kind of environment?

share|improve this question
    
Is there any way you could incorporate a UPS or battery backup into your devices? Even a relatively small one would give Linux enough time to shut things down gracefully. Ideally, you'd want to tell your applications first (as soon as the UPS kicks in) so they could shut down before Linux forces them to do so in very little time. –  Joe Jul 18 '12 at 21:55

3 Answers 3

up vote 12 down vote accepted

Note: this answer is from the perspective of a production environment where data loss or downtime can lead to loss of money, customers, industrial equipment malfunctioning, etc. If you are just tinkering with a Raspberry Pi at home, I'd say there's no problem... :)

I would not recommend Ubuntu in its default configuration, and the (default) ext4 filesystem by design, for an embedded environment where there would be repetitive "ungraceful" shutdowns like you suggest.

If I'm correct, you're using Ubuntu 8.04, which supports ext3 at best. While both ext3/ext4 use journaling as a way to maintain file (write) integrity and to aid in recovery, these should not be relied on when "pull the power cable" is the rule rather than the exception.

  • The ideal option, assuming that your system will not need dynamic reconfiguration once set up, is to mount its root filesystem read-only and to entirely use a temporary in-memory partition when operational (like the LiveCD does). In this case, the system would return to its "initial" configuration whenever booted up.
  • To store (a limited amount of) user data in a non-volatile way, you could create a secondary partition, perhaps using a filesystem optimized for flash media such as JFFS2 depending on the internal structure of the CF card. To reduce the chances of data corruption by pulling the plug, you could disable hardware write caching for the device, and mount it in synchronous (sync) mode, disabling write caching by the kernel. These options may severely affect throughput and performance, even on a "high-end" CF card, so you would have to take the intended use into consideration too.
share|improve this answer
3  
I have to call FUD. The ext3/4 journal most certainly can be relied on to keep the filesystem in working order when pulling the plug. It does nothing however, for user data, so applications writing files at the time of the crash may corrupt their data unless they are careful. Also enabling sync on flash media will not just slow things down drastically, but will lead to the flash wearing out sooner. Also JFFS and YAFFS are for use on direct NOR flash built into embedded systems; ext4 works better on consumer type devices that do internal wear leveling. –  psusi Jul 17 '12 at 17:41
1  
As far as I am aware these cards are really good - but currently DOS is used. The devices need to record instrumentation data at regular intervals. As this data is business critical it sounds like I better avoid using ubuntu. I just cant believe that DOS seems the more reliable approach. Anyway thanks very much for this excellent thourough answer!! The cards we use have internal wear leveling as far as I know. –  mathematician1975 Jul 17 '12 at 19:38
1  
I'm not sure what you were getting at viz. wear-leveling and flush. My point was that sync leads to more writes, which will wear out flash sooner. Also when using the ext3/4 journal, a fsck is NOT performed after power fail; the kernel uses the journal to make fast repairs when the fs is mounted. Avoiding a long fsck after a crash is the whole reason journaling was added. –  psusi Jul 18 '12 at 17:44
2  
@mathematician1975: if you want to use Linux for these purposes, you need a real-time/embedded distro, maybe something like ucLinux, not a full-blown desktop/server distro like Ubuntu... :) –  izx Jul 19 '12 at 8:19
2  
@mathematician1975 - if this is "business critical data", then surely you want to put in a UPS? No operating system on Earth can guarantee corruption-free data when you pull the plug at any time. As already mentioned, making everything read-only apart from the data would help, and a light Linux distro can shut down safely and rapidly on a signal from a UPS. –  Paddy Landau Jul 24 '12 at 9:53

The Operating System will be fine as long as it is setup for read-only use. LiveCD's have a setup like that, so that you can power them off at anytime, and the OS will not suffer harm.

On a read-write drive, ext4 filesystems are very resilient. But no matter the filesystem, any drive that is writable will be subject to corrupt files.

share|improve this answer

I have been using Ubuntu for about 18 months, and I've experimented with all sorts of programs and downloads. My opinion on Ubuntu is that it is far and away the the most stable operateing system available.

Programs and downloads that would have demolished windows OS's are just brushed aside by Ubuntu and Kubuntu, Ubuntu is really easy to use, has everything you could ever need, office and work applications are excellent, and it never gets a virus or trojens like Windows.

Kubuntu seems to have a few more toys, it's a bit harder to get to grips with but just as robust as ubuntu. The only downside with either is that you can't play 3d games or watch skygo like you can with Windows, but apart from that can't see any reason to use anything else.

share|improve this answer
    
This doesn't really address this question, though, which is asking specifically about how well an Ubuntu system hold up across multiple sudden power loss events. –  Eliah Kagan Aug 1 '12 at 6:46

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.