After making an image of a physical linux box (Dell hardware running CentOS), I converted the IMG file to a VDH file and after booting had many issue. One of which was the following error which caused all databases on the respective volume to fail because the volume was in read-only mode.
EXT3-fs error (device hda3) in start_transaction: Journal has aborted
Turns out, the system is telling me that it’s detected a file system/journal mismatch, and it can’t utilize the journal any longer. When this situation pops up, the file system gets mounted read-only. To fix the situation, I had to boot the system (now in the VM environment) in single user mode, dismount the volume and fix it.
I first started by removing the journal from the file system:
# tune2fs -O ^has_journal /dev/hda3
Then I tried to fsck it to correct any possible problems:
# e2fsck -p -f -v /dev/hda3
Unfortunately this lead me to another error: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p options).
Ugh. fsck again….I had originally run it without the -f option and it found no errors, yet it refused to mount in read-write mode. So now running it sans the -p option, -f forcing it to check it anyway, seems to have helped- but this time I needed to be present to hit y to every single error. There were hundreds.
Once that finished I ran it again with the -y option to see if it picked up anything and it was clean!
Time to make a new journal which makes the partition an ext3 file system again:
I can now mount the partition as an ext3 partition:
# mount -t ext3 /dev/hda3 /mnt/fixed
After rebooting the system seems happy once again with no mounting errors. Quick and simple!
Many different terms are used for the devices that run our small computing projects. In addition there are lots of different hardware/software platforms. Many are pin compatible, similar in size and function and can achieve the same result in different ways.
Here are some of the common terms:
A microcontroller is a small computer built into a single chip. This chip contains the processor, RAM, EPROM and I/O pins. These generally are designed for executing I/O and small computational functions.
The Arduino is not just a microcontroller. It’s a platform that includes a microcontroller. Usually an ATMega chip. An Arduino also includes other chips and components to make it easy to communicate with, program and prototype with.
Embedded systems are also small computers all on one chip (also called SoC for System On a Chip). These are generally more powerful (32 bit as opposed to 8 or 16 bit CPUs on microcontrollers) than a microcontroller and can run full operating systems like Linux or Windows. They too have other chips for communication and I/O and offer programming in higher level languages supported by the operating system. The Raspberry Pi is considered an embedded system but also falls under the next classification. Embedded Systems are also found in many consumer electronics like MP3 players and cell phones. In these cases they aren’t for prototyping or user programming but their features are very similar. iPhone and Android phones/tablets also use SoCs extensively.
Single Board Computer
A single board computer is an Embedded System with ALL the bells and whistles on a small board. This usually includes USB, Ethernet, Video, GPIO, Storage and possibly expandable memory. The Raspberry Pi is definitely a single board computer. It also has prototyping components like most microcontroller platforms. It’s a powerful fully featured system.