* [Buildroot] Creating a bootable filesystem image?
@ 2008-04-07 18:58 Arun Reddy
2008-04-07 19:29 ` John Voltz
2008-04-08 10:02 ` Sebastian
0 siblings, 2 replies; 7+ messages in thread
From: Arun Reddy @ 2008-04-07 18:58 UTC (permalink / raw)
To: buildroot
Hi everyone,
I was able to create a filesystem image and .iso using buildroot.
In experimenting with booting up the new kernel on a virtual machine
(VirtualBox), I found that I needed to convert my rootfs.i386.ext2
filesystem image to a .vdi file (using VirtualBox software).
I tried booting the .vdi alone, but unfortunately I encountered an immediate
error that stated "no bootable medium could be found." To get passed this
error, I mounted the .iso as well along with my .vdi file. Using some help
from the mailing list members, I got passed a few minor problems during
bootup, and got the kernel running with a shell.
With that milestone complete, I now want to avoid using both the .iso and
the harddisk (.vdi) together. I just want to be able to convert the
rootfs.i386.ext2 to a .vdi file and run that alone. The fact that this .vdi
cannot boot alone leads me to believe the filesystem that buildroot creates
for me is not bootable. (I may have missed an important part in my reading,
but either the filesystem absolutely needs an .iso to work, or it is used
for the user to chroot into it and boot from there).
My question is, does anyone know if there is a way to configure buildroot to
make rootfs.i386.ext2 bootable? Please note that I disabled RAMDISK in the
kernel .config before compiling buildroot because I don't need to use one.
Thank you in advance for your responses!
Arun
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://busybox.net/lists/buildroot/attachments/20080407/971ecbeb/attachment.htm
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] Creating a bootable filesystem image?
2008-04-07 18:58 [Buildroot] Creating a bootable filesystem image? Arun Reddy
@ 2008-04-07 19:29 ` John Voltz
2008-04-08 10:02 ` Sebastian
1 sibling, 0 replies; 7+ messages in thread
From: John Voltz @ 2008-04-07 19:29 UTC (permalink / raw)
To: buildroot
You need a bootloader like grub to kickstart everything. Buildroot will
build grub for you. You have to do a little tweaking of /boot/grub/menu.lst
to point grub at your kernel. You can look inside /scripts/create-ext3-img
to see what needs to be done, or just use that script to do your bidding.
John
On Mon, Apr 7, 2008 at 2:58 PM, Arun Reddy <reddyac@gmail.com> wrote:
> Hi everyone,
>
> I was able to create a filesystem image and .iso using buildroot.
>
> In experimenting with booting up the new kernel on a virtual machine
> (VirtualBox), I found that I needed to convert my rootfs.i386.ext2
> filesystem image to a .vdi file (using VirtualBox software).
> I tried booting the .vdi alone, but unfortunately I encountered an
> immediate error that stated "no bootable medium could be found." To get
> passed this error, I mounted the .iso as well along with my .vdi file. Using
> some help from the mailing list members, I got passed a few minor problems
> during bootup, and got the kernel running with a shell.
>
> With that milestone complete, I now want to avoid using both the .iso and
> the harddisk (.vdi) together. I just want to be able to convert the
> rootfs.i386.ext2 to a .vdi file and run that alone. The fact that this .vdi
> cannot boot alone leads me to believe the filesystem that buildroot creates
> for me is not bootable. (I may have missed an important part in my reading,
> but either the filesystem absolutely needs an .iso to work, or it is used
> for the user to chroot into it and boot from there).
>
> My question is, does anyone know if there is a way to configure buildroot
> to make rootfs.i386.ext2 bootable? Please note that I disabled RAMDISK in
> the kernel .config before compiling buildroot because I don't need to use
> one.
>
> Thank you in advance for your responses!
>
> Arun
>
> _______________________________________________
> buildroot mailing list
> buildroot at uclibc.org
> http://busybox.net/mailman/listinfo/buildroot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://busybox.net/lists/buildroot/attachments/20080407/842ea6f0/attachment.htm
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] Creating a bootable filesystem image?
2008-04-07 18:58 [Buildroot] Creating a bootable filesystem image? Arun Reddy
2008-04-07 19:29 ` John Voltz
@ 2008-04-08 10:02 ` Sebastian
[not found] ` <326f33790804081325s680eb37bg9b8e73663277f4c2@mail.gmail.com>
1 sibling, 1 reply; 7+ messages in thread
From: Sebastian @ 2008-04-08 10:02 UTC (permalink / raw)
To: buildroot
Hello Arun,
> My question is, does anyone know if there is a way to configure
buildroot to make rootfs.i386.ext2 bootable? Please note that I disabled
RAMDISK in the > kernel .config before compiling buildroot because I
don't need to use one.
This is because rootfs.i386.ext2 is only a file system image, not a hard
disk image. It is missing the boot sector of the disk, which contains
the Master Boot Record and the partition table. The BIOS on i386 does
only execute the first sector on the disk (the MBR code) which usually
only boots from the active partition. So you need a bootloader, as the
kernel itself is not able to be loaded this way.
Like John said, you can use GRUB. But if you only want to boot a ext2
partition, you can easily get away with Extlinux. It is a syslinux
derivate with support for ext2 (and ext3) instead of FAT. It installs
only into the partition (not into the master boot record), which means
you should be fine by creating and activating the partition containing
your ext2 image.
The changes in scripts/build-ext3-img references ext3 only while
creating the file system. So you only need to change that if you want to
use grub.
Best regards,
Sebastian
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] Fwd: Creating a bootable filesystem image?
[not found] ` <326f33790804081325s680eb37bg9b8e73663277f4c2@mail.gmail.com>
@ 2008-04-08 20:27 ` Arun Reddy
[not found] ` <47FBE4A8.9080104@arcor.de>
1 sibling, 0 replies; 7+ messages in thread
From: Arun Reddy @ 2008-04-08 20:27 UTC (permalink / raw)
To: buildroot
I apologize I forgot to send the message below to the whole mailing list.
---------- Forwarded message ----------
From: Arun Reddy <reddyac@gmail.com>
Date: Tue, Apr 8, 2008 at 1:25 PM
Subject: Re: [Buildroot] Creating a bootable filesystem image?
To: Sebastian <bastisoft@arcor.de>
Hi Sebastian,
Thank you for this email. Would you be willing to explain why I would need
to change ext3 in order to use grub? Can grub not work on ext3 filesystem? I
just picked ext2 in the kernel configuration as a test but I can really use
any filesystem I want (ext2, ext3, etc). So if the script will create for me
a bootable ext3 filesystem cannot I just use that as it is?
On Tue, Apr 8, 2008 at 3:02 AM, Sebastian <bastisoft@arcor.de> wrote:
> Hello Arun,
>
> > My question is, does anyone know if there is a way to configure
> buildroot to make rootfs.i386.ext2 bootable? Please note that I disabled
> RAMDISK in the > kernel .config before compiling buildroot because I
> don't need to use one.
>
> This is because rootfs.i386.ext2 is only a file system image, not a hard
> disk image. It is missing the boot sector of the disk, which contains
> the Master Boot Record and the partition table. The BIOS on i386 does
> only execute the first sector on the disk (the MBR code) which usually
> only boots from the active partition. So you need a bootloader, as the
> kernel itself is not able to be loaded this way.
>
> Like John said, you can use GRUB. But if you only want to boot a ext2
> partition, you can easily get away with Extlinux. It is a syslinux
> derivate with support for ext2 (and ext3) instead of FAT. It installs
> only into the partition (not into the master boot record), which means
> you should be fine by creating and activating the partition containing
> your ext2 image.
>
> The changes in scripts/build-ext3-img references ext3 only while
> creating the file system. So you only need to change that if you want to
> use grub.
>
> Best regards,
> Sebastian
> _______________________________________________
> buildroot mailing list
> buildroot at uclibc.org
> http://busybox.net/mailman/listinfo/buildroot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://busybox.net/lists/buildroot/attachments/20080408/b5f5dabf/attachment.htm
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] Creating a bootable filesystem image?
[not found] ` <47FBE4A8.9080104@arcor.de>
@ 2008-04-08 22:26 ` Arun Reddy
[not found] ` <47FBF3F3.4040001@arcor.de>
0 siblings, 1 reply; 7+ messages in thread
From: Arun Reddy @ 2008-04-08 22:26 UTC (permalink / raw)
To: buildroot
Sebastian,
Thanks for the information, I do understand it much clearer now. I am
attempting to run the script and find out whether my input will result in
the bootable filesystem I want. When running build-ext-img, I input
Enter the path to the image:
I input "/root/buildroot/scripts/" since that is where the filesystem image
is located.
Enter the name of the image file:
I input "buildroot.img"
Enter the path to the root filesystem that you want to install the image
I input "/root/buildroot/binaries/uclibc/" since this is where my filesystem
image (rootfs.i386.ext2) is located.
When the script runs, it looks like everything is ok at first, but
eventually I get the warning stating Device contains neither a valid DOS
partition table, nor Sun, SGI... etc. It builds a new DOS disklabel for me,
so I go ahead and continue. I also get a warning that there is an invalid
flag 0x0000 of partition table 4 that will be corrected by w(rite) which I
go ahead an accept. I then type q to quit and continue building the bootable
FS.
I am finally left with
cp: writing /root/buildroot/scripts/temp/rootfs.i386.iso: No space left on
device.
I examined the script and noticed when installing software to the image,
${IMAGE} is mounted to ${IMAGE_PATH}/temp, then ${ROOT_PATH}/* is copied to
that location, and then the temp folder is unmounted and removed. Am I
getting that there is no space on the device because it is trying to copy to
a folder where the image is mounted? Or did I not correctly interpret the
inputs correctly above? Thanks for answering these. I should point out I am
using Snapshot from 4-1-2008.
On Tue, Apr 8, 2008 at 2:33 PM, Sebastian <bastisoft@arcor.de> wrote:
> Hello Arun,
>
> of course you can use a ext3 file system, if your kernel only uses ext2.
>
> Ext3 is fully backwards-compatible to ext2, which means you can use any
> ext2 driver to access ext3 file systems. Grub uses an ext2 file system
> driver, so it can read ext3, too. I don't know which kind of storage device
> you are using; ext3 is an ext2 file system with a journal. Journalling saves
> a lot of time when you need to fsck the device (and use a journal-capable
> [ext3]-driver for writing, of course), but the file system will write a lot
> more often onto the device, too - this matters if you use a flash device or
> something that wears out. If you read-only mount your file system, the
> journal isn't used at all.
>
> I mean: You can use the ext3 file system as-is, but you waste some KB (or
> MB for larger disks) of space. It won't hurt, though, and grub can use ext2
> and ext3.
> It's just that i personally dislike grub and wanted to say that there are
> alternatives (extlinux) around. ;-)
>
> Best regards,
> Sebastian
>
> Hi Sebastian,
> >
> > Thank you for this email. Would you be willing to explain why I would
> > need to change ext3 in order to use grub? Can grub not work on ext3
> > filesystem? I just picked ext2 in the kernel configuration as a test but I
> > can really use any filesystem I want (ext2, ext3, etc). So if the script
> > will create for me a bootable ext3 filesystem cannot I just use that as it
> > is?
> >
> > On Tue, Apr 8, 2008 at 3:02 AM, Sebastian <bastisoft@arcor.de <mailto:
> > bastisoft at arcor.de>> wrote:
> >
> > Hello Arun,
> >
> > > My question is, does anyone know if there is a way to configure
> > buildroot to make rootfs.i386.ext2 bootable? Please note that I
> > disabled
> > RAMDISK in the > kernel .config before compiling buildroot because I
> > don't need to use one.
> >
> > This is because rootfs.i386.ext2 is only a file system image, not
> > a hard
> > disk image. It is missing the boot sector of the disk, which contains
> > the Master Boot Record and the partition table. The BIOS on i386 does
> > only execute the first sector on the disk (the MBR code) which
> > usually
> > only boots from the active partition. So you need a bootloader, as
> > the
> > kernel itself is not able to be loaded this way.
> >
> > Like John said, you can use GRUB. But if you only want to boot a ext2
> > partition, you can easily get away with Extlinux. It is a syslinux
> > derivate with support for ext2 (and ext3) instead of FAT. It installs
> > only into the partition (not into the master boot record), which
> > means
> > you should be fine by creating and activating the partition
> > containing
> > your ext2 image.
> >
> > The changes in scripts/build-ext3-img references ext3 only while
> > creating the file system. So you only need to change that if you
> > want to
> > use grub.
> >
> > Best regards,
> > Sebastian
> > _______________________________________________
> > buildroot mailing list
> > buildroot at uclibc.org <mailto:buildroot@uclibc.org>
> > http://busybox.net/mailman/listinfo/buildroot
> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://busybox.net/lists/buildroot/attachments/20080408/6eb5f69c/attachment-0001.htm
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] Creating a bootable filesystem image?
[not found] ` <47FBF3F3.4040001@arcor.de>
@ 2008-04-08 23:50 ` Arun Reddy
[not found] ` <47FCD648.8040007@arcor.de>
0 siblings, 1 reply; 7+ messages in thread
From: Arun Reddy @ 2008-04-08 23:50 UTC (permalink / raw)
To: buildroot
Thanks! There is certainly no hurry so please only try if you have free
time. I will attempt some of the suggestions you stated here in the
meantime.
Arun
On Tue, Apr 8, 2008 at 3:38 PM, Sebastian <bastisoft@arcor.de> wrote:
> Hello,
>
> just to make it short and to let you know I got your mail:
>
> I have no idea, but I'll look into it tomorrow (if I'm not forgetting it),
> but that'll be in about 16 hours.
>
> Some ideas: Adding a partition table to the image might make it larger
> than it was before and copying the data that exactly fit before might not
> fit afterwards. I have no idea why the error message contains your .iso
> file. Another thing is, that grub takes some space on any disk it is
> installed onto:
>
> The first 446 bytes of the MBR are overwritten (the remaining 64 bytes
> contain the partition table and a magic number), the following sectors are
> not allowed to contain a partition, so these are used for grub's boot code,
> and inside your /boot partition some files are copied inside (everything
> under /boot/grub). So this might be a reason, too. (Extlinux just installs
> the boot code into the partition and optionally needs a /boot/extlinux.conf
> file for configuration.)
>
> Try to make the image somewhat larger (you can select the size in make
> menuconfig).
>
> I'll look into it tomorrow, when I am through my university chores...
>
> Best regards,
> Sebastian
>
>
> Arun Reddy schrieb:
>
> > Sebastian,
> >
> > Thanks for the information, I do understand it much clearer now. I am
> > attempting to run the script and find out whether my input will result in
> > the bootable filesystem I want. When running build-ext-img, I input
> >
> > Enter the path to the image:
> >
> > I input "/root/buildroot/scripts/" since that is where the filesystem
> > image is located.
> >
> > Enter the name of the image file:
> >
> > I input "buildroot.img"
> >
> > Enter the path to the root filesystem that you want to install the image
> >
> > I input "/root/buildroot/binaries/uclibc/" since this is where my
> > filesystem image (rootfs.i386.ext2) is located.
> >
> > When the script runs, it looks like everything is ok at first, but
> > eventually I get the warning stating Device contains neither a valid DOS
> > partition table, nor Sun, SGI... etc. It builds a new DOS disklabel for me,
> > so I go ahead and continue. I also get a warning that there is an invalid
> > flag 0x0000 of partition table 4 that will be corrected by w(rite) which I
> > go ahead an accept. I then type q to quit and continue building the bootable
> > FS.
> >
> > I am finally left with
> >
> > cp: writing /root/buildroot/scripts/temp/rootfs.i386.iso: No space left
> > on device.
> >
> > I examined the script and noticed when installing software to the image,
> > ${IMAGE} is mounted to ${IMAGE_PATH}/temp, then ${ROOT_PATH}/* is copied to
> > that location, and then the temp folder is unmounted and removed. Am I
> > getting that there is no space on the device because it is trying to copy to
> > a folder where the image is mounted? Or did I not correctly interpret the
> > inputs correctly above? Thanks for answering these. I should point out I am
> > using Snapshot from 4-1-2008.
> >
> > On Tue, Apr 8, 2008 at 2:33 PM, Sebastian <bastisoft@arcor.de <mailto:
> > bastisoft at arcor.de>> wrote:
> >
> > Hello Arun,
> >
> > of course you can use a ext3 file system, if your kernel only uses
> > ext2.
> >
> > Ext3 is fully backwards-compatible to ext2, which means you can
> > use any ext2 driver to access ext3 file systems. Grub uses an ext2
> > file system driver, so it can read ext3, too. I don't know which
> > kind of storage device you are using; ext3 is an ext2 file system
> > with a journal. Journalling saves a lot of time when you need to
> > fsck the device (and use a journal-capable [ext3]-driver for
> > writing, of course), but the file system will write a lot more
> > often onto the device, too - this matters if you use a flash
> > device or something that wears out. If you read-only mount your
> > file system, the journal isn't used at all.
> >
> > I mean: You can use the ext3 file system as-is, but you waste some
> > KB (or MB for larger disks) of space. It won't hurt, though, and
> > grub can use ext2 and ext3.
> > It's just that i personally dislike grub and wanted to say that
> > there are alternatives (extlinux) around. ;-)
> >
> > Best regards,
> > Sebastian
> >
> > Hi Sebastian,
> >
> > Thank you for this email. Would you be willing to explain why
> > I would need to change ext3 in order to use grub? Can grub not
> > work on ext3 filesystem? I just picked ext2 in the kernel
> > configuration as a test but I can really use any filesystem I
> > want (ext2, ext3, etc). So if the script will create for me a
> > bootable ext3 filesystem cannot I just use that as it is?
> >
> > On Tue, Apr 8, 2008 at 3:02 AM, Sebastian <bastisoft@arcor.de
> > <mailto:bastisoft@arcor.de> <mailto:bastisoft@arcor.de
> >
> > <mailto:bastisoft@arcor.de>>> wrote:
> >
> > Hello Arun,
> >
> > > My question is, does anyone know if there is a way to
> > configure
> > buildroot to make rootfs.i386.ext2 bootable? Please note that
> > I
> > disabled
> > RAMDISK in the > kernel .config before compiling buildroot
> > because I
> > don't need to use one.
> >
> > This is because rootfs.i386.ext2 is only a file system
> > image, not
> > a hard
> > disk image. It is missing the boot sector of the disk,
> > which contains
> > the Master Boot Record and the partition table. The BIOS on
> > i386 does
> > only execute the first sector on the disk (the MBR code)
> > which usually
> > only boots from the active partition. So you need a
> > bootloader, as the
> > kernel itself is not able to be loaded this way.
> >
> > Like John said, you can use GRUB. But if you only want to
> > boot a ext2
> > partition, you can easily get away with Extlinux. It is a
> > syslinux
> > derivate with support for ext2 (and ext3) instead of FAT.
> > It installs
> > only into the partition (not into the master boot record),
> > which means
> > you should be fine by creating and activating the partition
> > containing
> > your ext2 image.
> >
> > The changes in scripts/build-ext3-img references ext3 only
> > while
> > creating the file system. So you only need to change that
> > if you
> > want to
> > use grub.
> >
> > Best regards,
> > Sebastian
> > _______________________________________________
> > buildroot mailing list
> > buildroot at uclibc.org <mailto:buildroot@uclibc.org>
> > <mailto:buildroot at uclibc.org <mailto:buildroot@uclibc.org>>
> >
> > http://busybox.net/mailman/listinfo/buildroot
> >
> >
> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://busybox.net/lists/buildroot/attachments/20080408/258add91/attachment.htm
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] Creating a bootable filesystem image?
[not found] ` <47FCD648.8040007@arcor.de>
@ 2008-04-11 18:51 ` Arun Reddy
0 siblings, 0 replies; 7+ messages in thread
From: Arun Reddy @ 2008-04-11 18:51 UTC (permalink / raw)
To: buildroot
Sebastian and Buildroot members
I will try this as soon as I can. Right now I am not near my machine with my
build system. If anyone can please try this out for themselves to give
further feedback I would greatly appreciate it. This might be something I
can submit as a bug if everyone is experiencing it. Thank you and I will let
you know about my results as soon as I can.
Arun
On Wed, Apr 9, 2008 at 10:44 AM, Sebastian <bastisoft@arcor.de> wrote:
> Hello Arun,
>
> I tried to create an ext2 file system myself (i486 architecture without
> any applications enabled).
>
> The first two questions I answered with return, the last one with
> /home/basti/linux/buildroot/binaries/uclibc/ and then I noticed that the
> fdisk command gave the same error message as you wrote.
>
> But it doesn't create a partition, so I create one myself: (n)ew,
> (p)rimary, (1), return, return, (w)rite. Then it tries to install grub which
> fails for me, as it can't find /boot/grub/stage1 on the image. If I could
> provide these files, it should work, as grub recognizes the partition.
>
> Maybe you could try to build no ISO image at all, just the ext2 (ext3)
> root file system. I have really no idea why it tries to copy your iso file
> onto the image, as it is not to be placed there.
>
> Best regards,
> Sebastian
>
>
> Sebastian,
> >
> > Thanks for the information, I do understand it much clearer
> > now. I am attempting to run the script and find out whether my
> > input will result in the bootable filesystem I want. When
> > running build-ext-img, I input
> >
> > Enter the path to the image:
> >
> > I input "/root/buildroot/scripts/" since that is where the
> > filesystem image is located.
> >
> > Enter the name of the image file:
> >
> > I input "buildroot.img"
> >
> > Enter the path to the root filesystem that you want to install
> > the image
> >
> > I input "/root/buildroot/binaries/uclibc/" since this is where
> > my filesystem image (rootfs.i386.ext2) is located.
> >
> > When the script runs, it looks like everything is ok at first,
> > but eventually I get the warning stating Device contains
> > neither a valid DOS partition table, nor Sun, SGI... etc. It
> > builds a new DOS disklabel for me, so I go ahead and continue.
> > I also get a warning that there is an invalid flag 0x0000 of
> > partition table 4 that will be corrected by w(rite) which I go
> > ahead an accept. I then type q to quit and continue building
> > the bootable FS.
> >
> > I am finally left with
> >
> > cp: writing /root/buildroot/scripts/temp/rootfs.i386.iso: No
> > space left on device.
> >
> > I examined the script and noticed when installing software to
> > the image, ${IMAGE} is mounted to ${IMAGE_PATH}/temp, then
> > ${ROOT_PATH}/* is copied to that location, and then the temp
> > folder is unmounted and removed. Am I getting that there is no
> > space on the device because it is trying to copy to a folder
> > where the image is mounted? Or did I not correctly interpret
> > the inputs correctly above? Thanks for answering these. I
> > should point out I am using Snapshot from 4-1-2008.
> >
> >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://busybox.net/lists/buildroot/attachments/20080411/32c10b3a/attachment.htm
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2008-04-11 18:51 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-07 18:58 [Buildroot] Creating a bootable filesystem image? Arun Reddy
2008-04-07 19:29 ` John Voltz
2008-04-08 10:02 ` Sebastian
[not found] ` <326f33790804081325s680eb37bg9b8e73663277f4c2@mail.gmail.com>
2008-04-08 20:27 ` [Buildroot] Fwd: " Arun Reddy
[not found] ` <47FBE4A8.9080104@arcor.de>
2008-04-08 22:26 ` [Buildroot] " Arun Reddy
[not found] ` <47FBF3F3.4040001@arcor.de>
2008-04-08 23:50 ` Arun Reddy
[not found] ` <47FCD648.8040007@arcor.de>
2008-04-11 18:51 ` Arun Reddy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox