* grub nilfs2 module
@ 2010-02-03 12:43 Jiro SEKIBA
[not found] ` <87vdeea3r1.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: Jiro SEKIBA @ 2010-02-03 12:43 UTC (permalink / raw)
To: linux-nilfs-u79uwXL29TY76Z2rM5mHXA
Hi,
I've written nilfs2 module for grub2 boot loader.
Here is the patch and mail I'v sent to grub-devel ML.
http://lists.gnu.org/archive/html/grub-devel/2010-02/msg00025.html
It may not be mature yet, but I was able to boot kernel
from nilfs2 partition and mount it as rootfs.
So you are able to boot the system that has only nilfs2 partition.
The patch is against bazaar repository top, but actual code is
just a fs/nilfs2.c. Other patches are against makefiles.
So I think you can able to compile it in stable release with
slight modification.
It would be very nice of you if you try and give me feed backs
to improve the module.
thank you very much in advance!
--
Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: grub nilfs2 module
[not found] ` <87vdeea3r1.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
@ 2010-02-04 1:02 ` Ryusuke Konishi
[not found] ` <20100204.100228.02802641.ryusuke-sG5X7nlA6pw@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: Ryusuke Konishi @ 2010-02-04 1:02 UTC (permalink / raw)
To: jir-hfpbi5WX9J54Eiagz67IpQ; +Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA
Hi,
On Wed, 03 Feb 2010 21:43:46 +0900, Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org> wrote:
> Hi,
>
> I've written nilfs2 module for grub2 boot loader.
>
> Here is the patch and mail I'v sent to grub-devel ML.
> http://lists.gnu.org/archive/html/grub-devel/2010-02/msg00025.html
Great!
The patch looks fine to me except some work, for instance,
rollforwarding and checksum based log validation is needed.
But meanwhile, this prototype seems enough to load kernels and
initrds.
I'd like to try it for my laptop.
> It may not be mature yet, but I was able to boot kernel
> from nilfs2 partition and mount it as rootfs.
> So you are able to boot the system that has only nilfs2 partition.
>
> The patch is against bazaar repository top, but actual code is
> just a fs/nilfs2.c. Other patches are against makefiles.
> So I think you can able to compile it in stable release with
> slight modification.
>
> It would be very nice of you if you try and give me feed backs
> to improve the module.
>
> thank you very much in advance!
> --
> Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
It would be nice if you could tell us belief usage of the patch.
Thank you,
Ryusuke Konishi
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: grub nilfs2 module
[not found] ` <20100204.100228.02802641.ryusuke-sG5X7nlA6pw@public.gmane.org>
@ 2010-02-04 7:54 ` Ryusuke Konishi
[not found] ` <20100204.165456.217843065.ryusuke-sG5X7nlA6pw@public.gmane.org>
2010-02-04 9:03 ` Jiro SEKIBA
1 sibling, 1 reply; 8+ messages in thread
From: Ryusuke Konishi @ 2010-02-04 7:54 UTC (permalink / raw)
To: jir-hfpbi5WX9J54Eiagz67IpQ; +Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA
Hi,
On Thu, 04 Feb 2010 10:02:28 +0900 (JST), Ryusuke Konishi <ryusuke-sG5X7nlA6pw@public.gmane.org> wrote:
> Hi,
> On Wed, 03 Feb 2010 21:43:46 +0900, Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org> wrote:
> > Hi,
> >
> > I've written nilfs2 module for grub2 boot loader.
> >
> > Here is the patch and mail I'v sent to grub-devel ML.
> > http://lists.gnu.org/archive/html/grub-devel/2010-02/msg00025.html
>
> Great!
>
> The patch looks fine to me except some work, for instance,
> rollforwarding and checksum based log validation is needed.
>
> But meanwhile, this prototype seems enough to load kernels and
> initrds.
>
> I'd like to try it for my laptop.
>
> > It may not be mature yet, but I was able to boot kernel
> > from nilfs2 partition and mount it as rootfs.
> > So you are able to boot the system that has only nilfs2 partition.
Let me ask you a question.
One thing which is important in NILFS is that every block in the
partition can be moved by the garbage collection (except two super
blocks).
So, we cannot assume that file blocks stay in a locked position even
for unmodified files.
Doesn't this cause problems for the boot sequence of GRUB2 ?
Regards,
Ryusuke Konishi
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: grub nilfs2 module
[not found] ` <20100204.165456.217843065.ryusuke-sG5X7nlA6pw@public.gmane.org>
@ 2010-02-04 8:18 ` Jiro SEKIBA
[not found] ` <87d40l9zyb.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: Jiro SEKIBA @ 2010-02-04 8:18 UTC (permalink / raw)
To: Ryusuke Konishi; +Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA
Hi,
At Thu, 04 Feb 2010 16:54:56 +0900 (JST),
Ryusuke Konishi wrote:
>
> Hi,
> On Thu, 04 Feb 2010 10:02:28 +0900 (JST), Ryusuke Konishi <ryusuke-sG5X7nlA6pw@public.gmane.org> wrote:
> > Hi,
> > On Wed, 03 Feb 2010 21:43:46 +0900, Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org> wrote:
> > > Hi,
> > >
> > > I've written nilfs2 module for grub2 boot loader.
> > >
> > > Here is the patch and mail I'v sent to grub-devel ML.
> > > http://lists.gnu.org/archive/html/grub-devel/2010-02/msg00025.html
> >
> > Great!
> >
> > The patch looks fine to me except some work, for instance,
> > rollforwarding and checksum based log validation is needed.
> >
> > But meanwhile, this prototype seems enough to load kernels and
> > initrds.
> >
> > I'd like to try it for my laptop.
> >
> > > It may not be mature yet, but I was able to boot kernel
> > > from nilfs2 partition and mount it as rootfs.
> > > So you are able to boot the system that has only nilfs2 partition.
>
> Let me ask you a question.
>
> One thing which is important in NILFS is that every block in the
> partition can be moved by the garbage collection (except two super
> blocks).
>
> So, we cannot assume that file blocks stay in a locked position even
> for unmodified files.
>
> Doesn't this cause problems for the boot sequence of GRUB2 ?
That's a good question.
It's basically OK because there usually are room for additional code
besides MBR in PC disk format. The room size is 32KiB followed by MBR.
The room is not required for linux, but historically for DOS compat.
See the link how modern disk layout is.
http://www.pixelbeat.org/docs/disk/
You can check it with the dd by following
# dd if=/dev/hda of=hda bs=512 count=3 skip=65
# hexdump -C hda > hda.hex
# dd if=/dev/hda1 of=hda1 bs=512 count=3
# hexdump -C hda1 > hda1.hex
NOTE, the differences between two dumps are, I think, mtime in a super block.
So if you install grub2 with root directory in nilfs2,
grub-install will install nilfs2.mod into that additional 32KiB space
The space is out of nilfs2 patition, so GC won't move the blocks.
thanks
regards
>
> Regards,
> Ryusuke Konishi
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
>
--
Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: grub nilfs2 module
[not found] ` <20100204.100228.02802641.ryusuke-sG5X7nlA6pw@public.gmane.org>
2010-02-04 7:54 ` Ryusuke Konishi
@ 2010-02-04 9:03 ` Jiro SEKIBA
[not found] ` <87bpg59xug.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
1 sibling, 1 reply; 8+ messages in thread
From: Jiro SEKIBA @ 2010-02-04 9:03 UTC (permalink / raw)
To: Ryusuke Konishi; +Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA
Hi,
> It would be nice if you could tell us belief usage of the patch.
OK, sure. It's against bazaar repository, so you have to build
it from repository source instead of latest stable release tarball.
To build with stable release(1.97.2), you need to modify fs/nilfs2.c
not to use grub_xasprintf, but use grub_malloc and grub_sprintf.
You may get reject for makefile, but I think it'll be OK.
Here are the instruction to retrieve grub repository and build the softoware.
$ bzr branch http://bzr.savannah.gnu.org/r/grub/trunk/grub
$ cd grub
$ patch -p0 < /path/to/the/patch
$ sh autogen.sh
$ ./configure
$ make
you need "make install" as usual. It will install under /usr/local
without giving any parameters for ./configure.
The "make install" won't install grub to MBR.
To install grub into MBR, you have to "grub-install" to target disk.
For example, assume that you have nilfs2 filesystem on hdb1,
mounted on /mnt and want to enable hdb as bootable. You'll do
# grub-install --root-directory=/mnt /dev/hdb
This will install grub into hdb's MBR and other required files into
following 32KiB blocks. Fuhtermore, it'll install files under
/mnt/boot/grub. Those files are not required to boot grub to read
the filesystem.
hdb is now self bootable disk. You'll just connect it as hdb and
grub will boot up.
Note, during grub-install, /boog/grub/grub.cfg will be copied int to
/mnt/boo/grub, which is not the one for hdb. So you have edit menu
at first time you boot with hdb. After boot the system, you can reproduce
the menu by grub-mkcofnig > /boot/grub/grub.cfg
Enjoy!
regards,
--
Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: grub nilfs2 module
[not found] ` <87d40l9zyb.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
@ 2010-02-04 9:03 ` Ryusuke Konishi
0 siblings, 0 replies; 8+ messages in thread
From: Ryusuke Konishi @ 2010-02-04 9:03 UTC (permalink / raw)
To: jir-hfpbi5WX9J54Eiagz67IpQ; +Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA
On Thu, 04 Feb 2010 17:18:04 +0900, Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org> wrote:
> Hi,
>
> At Thu, 04 Feb 2010 16:54:56 +0900 (JST),
> Ryusuke Konishi wrote:
> >
> > Hi,
> > On Thu, 04 Feb 2010 10:02:28 +0900 (JST), Ryusuke Konishi <ryusuke-sG5X7nlA6pw@public.gmane.org> wrote:
> > > Hi,
> > > On Wed, 03 Feb 2010 21:43:46 +0900, Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org> wrote:
> > > > Hi,
> > > >
> > > > I've written nilfs2 module for grub2 boot loader.
> > > >
> > > > Here is the patch and mail I'v sent to grub-devel ML.
> > > > http://lists.gnu.org/archive/html/grub-devel/2010-02/msg00025.html
> > >
> > > Great!
> > >
> > > The patch looks fine to me except some work, for instance,
> > > rollforwarding and checksum based log validation is needed.
> > >
> > > But meanwhile, this prototype seems enough to load kernels and
> > > initrds.
> > >
> > > I'd like to try it for my laptop.
> > >
> > > > It may not be mature yet, but I was able to boot kernel
> > > > from nilfs2 partition and mount it as rootfs.
> > > > So you are able to boot the system that has only nilfs2 partition.
> >
> > Let me ask you a question.
> >
> > One thing which is important in NILFS is that every block in the
> > partition can be moved by the garbage collection (except two super
> > blocks).
> >
> > So, we cannot assume that file blocks stay in a locked position even
> > for unmodified files.
> >
> > Doesn't this cause problems for the boot sequence of GRUB2 ?
>
> That's a good question.
>
> It's basically OK because there usually are room for additional code
> besides MBR in PC disk format. The room size is 32KiB followed by MBR.
> The room is not required for linux, but historically for DOS compat.
>
> See the link how modern disk layout is.
> http://www.pixelbeat.org/docs/disk/
>
> You can check it with the dd by following
> # dd if=/dev/hda of=hda bs=512 count=3 skip=65
> # hexdump -C hda > hda.hex
> # dd if=/dev/hda1 of=hda1 bs=512 count=3
> # hexdump -C hda1 > hda1.hex
>
> NOTE, the differences between two dumps are, I think, mtime in a super block.
>
> So if you install grub2 with root directory in nilfs2,
> grub-install will install nilfs2.mod into that additional 32KiB space
> The space is out of nilfs2 patition, so GC won't move the blocks.
>
> thanks
Thanks! That cleared up my doubts on GC.
The reference you cited is informative.
Regards,
Ryusuke Konishi
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: grub nilfs2 module
[not found] ` <87bpg59xug.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
@ 2010-02-04 9:21 ` Ryusuke Konishi
[not found] ` <20100204.182139.37565943.ryusuke-sG5X7nlA6pw@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: Ryusuke Konishi @ 2010-02-04 9:21 UTC (permalink / raw)
To: jir-hfpbi5WX9J54Eiagz67IpQ; +Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA
Hi,
On Thu, 04 Feb 2010 18:03:35 +0900, Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org> wrote:
> Hi,
>
> > It would be nice if you could tell us belief usage of the patch.
s/belief/brief/
;)
> OK, sure. It's against bazaar repository, so you have to build
> it from repository source instead of latest stable release tarball.
>
> To build with stable release(1.97.2), you need to modify fs/nilfs2.c
> not to use grub_xasprintf, but use grub_malloc and grub_sprintf.
>
> You may get reject for makefile, but I think it'll be OK.
>
>
> Here are the instruction to retrieve grub repository and build the softoware.
>
> $ bzr branch http://bzr.savannah.gnu.org/r/grub/trunk/grub
> $ cd grub
> $ patch -p0 < /path/to/the/patch
> $ sh autogen.sh
> $ ./configure
> $ make
>
> you need "make install" as usual. It will install under /usr/local
> without giving any parameters for ./configure.
>
> The "make install" won't install grub to MBR.
> To install grub into MBR, you have to "grub-install" to target disk.
>
> For example, assume that you have nilfs2 filesystem on hdb1,
> mounted on /mnt and want to enable hdb as bootable. You'll do
>
> # grub-install --root-directory=/mnt /dev/hdb
>
> This will install grub into hdb's MBR and other required files into
> following 32KiB blocks. Fuhtermore, it'll install files under
> /mnt/boot/grub. Those files are not required to boot grub to read
> the filesystem.
>
> hdb is now self bootable disk. You'll just connect it as hdb and
> grub will boot up.
>
> Note, during grub-install, /boog/grub/grub.cfg will be copied int to
> /mnt/boo/grub, which is not the one for hdb. So you have edit menu
> at first time you boot with hdb. After boot the system, you can reproduce
> the menu by grub-mkcofnig > /boot/grub/grub.cfg
>
> Enjoy!
Thank you once again.
I'll catch up the above steps and then comment later.
Ryusuke
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: grub nilfs2 module
[not found] ` <20100204.182139.37565943.ryusuke-sG5X7nlA6pw@public.gmane.org>
@ 2010-02-09 11:07 ` Ryusuke Konishi
0 siblings, 0 replies; 8+ messages in thread
From: Ryusuke Konishi @ 2010-02-09 11:07 UTC (permalink / raw)
To: jir-hfpbi5WX9J54Eiagz67IpQ; +Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA
Hi,
On Thu, 04 Feb 2010 18:21:39 +0900 (JST), Ryusuke Konishi wrote:
> > OK, sure. It's against bazaar repository, so you have to build
> > it from repository source instead of latest stable release tarball.
> >
> > To build with stable release(1.97.2), you need to modify fs/nilfs2.c
> > not to use grub_xasprintf, but use grub_malloc and grub_sprintf.
> >
> > You may get reject for makefile, but I think it'll be OK.
> >
> >
> > Here are the instruction to retrieve grub repository and build the softoware.
> >
> > $ bzr branch http://bzr.savannah.gnu.org/r/grub/trunk/grub
> > $ cd grub
> > $ patch -p0 < /path/to/the/patch
> > $ sh autogen.sh
> > $ ./configure
> > $ make
> >
> > you need "make install" as usual. It will install under /usr/local
> > without giving any parameters for ./configure.
> >
> > The "make install" won't install grub to MBR.
> > To install grub into MBR, you have to "grub-install" to target disk.
> >
> > For example, assume that you have nilfs2 filesystem on hdb1,
> > mounted on /mnt and want to enable hdb as bootable. You'll do
> >
> > # grub-install --root-directory=/mnt /dev/hdb
> >
> > This will install grub into hdb's MBR and other required files into
> > following 32KiB blocks. Fuhtermore, it'll install files under
> > /mnt/boot/grub. Those files are not required to boot grub to read
> > the filesystem.
> >
> > hdb is now self bootable disk. You'll just connect it as hdb and
> > grub will boot up.
> >
> > Note, during grub-install, /boog/grub/grub.cfg will be copied int to
> > /mnt/boo/grub, which is not the one for hdb. So you have edit menu
> > at first time you boot with hdb. After boot the system, you can reproduce
> > the menu by grub-mkcofnig > /boot/grub/grub.cfg
> >
> > Enjoy!
>
> Thank you once again.
>
> I'll catch up the above steps and then comment later.
>
> Ryusuke
I have finally succeeded to boot nilfs root without a separate /boot
partition ;)
On my Debian (squeeze) laptop, update-grub was also functional.
I did some trial and error when compiling grub2. The following
packages were required in my case:
- bison
- gettext
- libfreetype6-dev
And, the module didn't work for the stable version of grub(1.97.2) as
you mentioned above.
Until now, it looks working all right.
If you need any help to go further, please let me know.
Thanks!
Ryusuke Konishi
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-02-09 11:07 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-03 12:43 grub nilfs2 module Jiro SEKIBA
[not found] ` <87vdeea3r1.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
2010-02-04 1:02 ` Ryusuke Konishi
[not found] ` <20100204.100228.02802641.ryusuke-sG5X7nlA6pw@public.gmane.org>
2010-02-04 7:54 ` Ryusuke Konishi
[not found] ` <20100204.165456.217843065.ryusuke-sG5X7nlA6pw@public.gmane.org>
2010-02-04 8:18 ` Jiro SEKIBA
[not found] ` <87d40l9zyb.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
2010-02-04 9:03 ` Ryusuke Konishi
2010-02-04 9:03 ` Jiro SEKIBA
[not found] ` <87bpg59xug.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
2010-02-04 9:21 ` Ryusuke Konishi
[not found] ` <20100204.182139.37565943.ryusuke-sG5X7nlA6pw@public.gmane.org>
2010-02-09 11:07 ` Ryusuke Konishi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox