Now that we have the kernel ready (previous post), we can start creating a minimal root filesystem for your NAS to work on, note that this is a very minimal installation, but when the process is finished, you can install all the software you like.
Since i’m using Ubuntu, which is Debian based, there is a tool called
debootstrap. With debootstrap it’s possible to create a basic working Linux environment, which can be copied to the harddisk of your NAS and continue working that way.
Before continuing, make sure you are root (sudo su -)!
Debootstrap is not installed by default, so we have to install it first:
apt-get install debootstrap
Now that debootstrap is installed, we can start building our minimal system, first create a directory to store your basic filesystem in:
Now download and prepare the ARM basic filesystem:
debootstrap --verbose --arch armel --foreign squeeze rootfs http://ftp.nl.debian.org/debian
With this command you build a minimal foreign (other arch) system for armel using Debian Squeeze with verbose output. We are using the newer armel repo since the old arm repo is outdated and not being used anymore, only on legacy hardware. And i choose to run Squeeze since this is the soon to be released new Debian in a couple of weeks, so all packages are pretty up-to-date.
When this process is done you’ll end up with a
rootfs directory containing your minimal system. You need to tar it first before we can deploy it:
tar vczf rootfs.tgz *
mv rootfs.tgz ../
Now you have the packed filesystem in the same place as your kernel/modules are, which we’ll need for the second part, but i’ll be discussing that later :).
4 responses to “How to create your basic root filesystem for ARM”
Sorry about this 🙁
But the debootstrap line doesn’t work. Entering exactly as per your syntax produces:
cd: 352: can’t cd to http://ftp.nl.debian.org
No problem :), as for this to be good, people need to test it, because with these things, it’s easy to forget something as in this article.
I’ve made some modifications on the article, try again!
That worked! Removing the slash from rootfs did the trick.
Looking forward to your next article on how to get this puppy onto the LaCie 😀
Oh don’t worry, there is (much) more to come 😉