lkml.org 
[lkml]   [2009]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: Squashfs 4.0 tools
Date
On Sunday 05 April 2009 18:27:49 Phillip Lougher wrote:
> Phillip Lougher wrote:
> > Rob Landley wrote:
> >> On Monday 30 March 2009 19:55:24 Stephen Hemminger wrote:
> >>> I built it from cvs (imported into git), and it works okay.
> >>
> >> I grabbed the cvs snapshot gentoo's been using, but I don't see any
> >> way to feed in a device list text file so I can create the
> >> /dev/console node root filesystems need without needing root access on
> >> the host to mknod.
> >>
> >> genext2fs has the -D option, which takes:
> >>
> >> /dev d 755 0 0 - - - - -
> >> /dev/console c 640 0 0 5 1 0 0 -
> >>
> >> gen_init_cpio takes:
> >>
> >> dir /dev 755 0 0
> >> nod /dev/console 660 0 0 c 5 1
> >>
> >> Is there a squashfs option I'm missing...?
> >
> > I'll delay the release of the 4.0 tools and see if I can
> > implement this option in the next day or two.
>
> The Squashfs 4.0 tools have been released on sourceforge
> (http://www.squashfs.org), and mksquashfs now includes support for
> fake devices and directories.
>
> From README-4.0

Some suggested wordsmithing on the text you posted:

---

Mksquashfs now supports pseudo-files, which may be specified via the -p
and -pf command line options.

Pseudo-files allow fake directories, character devices, and block devices to
be added to the Squashfs filesystem being built without requiring them to be
present in the source filesystem. This allows a non-root user to create a
squashfs filesystem containing device nodes and directories (but files) with
arbitrary ownership/permissions.

The -p option specifies an individual pseudo-file, and takes a single argument
such as -p "/dev d 755 root root". The -p option may be repeated as
necessary.

The -pf option specifies a file containing a list of pseudo-file definitions,
one per line.

Pseudo-file definitions look like this:

/dev d 755 root root
/dev/chr_dev c 666 root root 100 1
/dev/blk_dev b 444 0 0 200 200

The first field is the complete path to the new entry in the squashfs
filesystem. (This path cannot currently contain any whitespace space
characters.) The second field is a single letter indicating the entry type.
Currently supported types are d (directory), b (block device), and c (char
device). The third, fourth, and fifth fields are (respectively) octal mode,
user id, and group ID. UID and GID can be specified either by decimal number
or using a name valid on the host filesystem.

Directory pseudo-file definitions only contain five fields. Device
pseudo-file definitions include major and minor numbers in the sixth and
seventh fields.

To ensure the pseudo-file definition is parsed as one argument, and to
ensure it isn't interpreted by the shell, the definition should be enclosed
in quotes when using the -p option, i.e.

mksquashfs test test.sqsh -p "/dev/chrdev c 666 root 100 1"

If a directory given in a pseudo file path exists in the real source
directories it doesn't have to be specified as a pseudo directory, if it
doesn't exist in the source directories, it must first be specified as a
pseudo directory (otherwise any pseudo devices under the directory will be
ignored).

For example

/dev d 755 root root
/dev/chr_dev c 666 root root 100 1

---

Thanks, looks good. I should be able to test it out in the morning.

Rob
--
GPLv3 is to GPLv2 what Attack of the Clones is to The Empire Strikes Back.


\
 
 \ /
  Last update: 2009-04-06 10:59    [W:0.054 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site