Re: [e2fsprogs] initdir: Writing inode after the initial write?

Darren Hart
2012-12-04T19:40:48Z

On 12/04/2012 11:08 AM, Theodore Ts'o wrote:
> On Tue, Dec 04, 2012 at 09:43:21AM -0800, Darren Hart wrote:
>>> "modify_inode" is not a terribly easy use interface. Probably better to add something like "chmod" and "chown" for debugfs as well.
>>
>> I was thinking the same thing.
>>
>
> modify_inode is the old command, and it is indeed hard to use. The
> new one (and the one I use all the time) is set_inode_field
> (abbreviation "sif"):
>
> sif /bin/su mode 0104755
> sif /bin/su uid 0

Ah, excellent.

> BTW, one of the things that I've always toyed with was to create a
> shim layer between the libss API and the tcl embedding API, which
> would add some scripting, aliases, and automation relatively easily to
> debugfs.
>
> What people have done in practice who have cared about this is to
> create perl scripts which emits a series of commands which they then
> feed to a pipe which has debugfs on the other end.

And this is what Andreas suggested with the example bash script. I may
convert
this to a python script, but the concept is sound. That said, I still
feel that
a logical approach would be the following:

1) Update debugfs to completely support our use-case
[ ] Add symlink support
[ ] Add hardlink support
[ ] Add meta-data mirroring
(some of this belongs in the script and not in the ext2fsprogs)
2) Refactor filesystem creation functions from debugfs and move them into
libext2fs alongside existing filesystem creation functions like
ext2fs_mkdir()
3) Add the "-r initialdir" option to mke2fs that leverages these new
functions
from libext2fs.

#3 makes for a more consistent filesystem creation process across
filesystems.

Does this seem like a reasonable approach? Any objection to the migration of
code into libext2fs?

--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Technical Lead - Linux Kernel