Proposal for a new disk configuration utility

Michal Svamberg svamberg at gmail.com
Wed May 3 12:02:10 CEST 2006


Hello,
I have a question about supporting Xen. Can you write a sample configuration
for Xen where exists device /dev/hda1 for root filesystem but not
exists /dev/hda?
I need create configuration files and variables without partitioning
disks. Is it possible in new disk configuration utility?

Thank you, Michal.

On 4/29/06, Michael Tautschnig <tautschn at model.in.tum.de> wrote:
> Hello everybody,
>
> it has been discussed for quite a time now and many enhancements for
> setup_harddisks have been posted and requested. To satisfy as many needs as
> possible, at least slight changes to the current disk_config format are required
> and probably setup_harddisks will be rewritten from scratch. Whereas the latter
> is yet to be done, a proposal for a new format has been created by Thomas and
> me.
>
> If you know EBNF, you can find a formal description of the input format below.
> However, the comments and examples included should also help everyone to get a
> quick idea of the way things work. Note, that the proposal is meant as a basis
> for further discussion, any suggestions are welcome!
>
> For those of you who are already using LVM/RAID: Please check, whether the
> format described below allows for configuring your exact setup using FAI -
> thanks!
>
> A few examples and explanations are given next, the differences to the previous
> format are detailed later on.
>
> ================================examples=======================================
> # Configure the device /dev/hda
> disk_config hda   preserve:6,7   disklabel:msdos  bootable:3
> # preserve the 6th and the 7th partition. Alternatively,
> # one could say preserve7 below. The disklabel is msdos, which is the default
> # for x86. Furthermore the 3rd partition is made bootable, which would have
> # happened as well by default as it is mounted as /
> primary /boot     20-100        rw                  ext3
> # create a primary partition /dev/hda1 with a size of 20 MB and mount it
> # read-write as /boot; it is formatted using ext3 filesystem
> primary swap      1000     sw         swap
> # /dev/hda2 will be a swap space of 1000 MB
> primary /         12000      rw                  ext3  -b 2048
> # /dev/hda3 should be formatted using ext3 filesystem; when calling mkfs.ext3
> # the option "-b 2048" is appended.
> logical /tmp      1000      rw,nosuid           ext3
> # create the logical partition /dev/hda5
> logical /usr      preserve6      rw                  ext3
> logical /var      10%-      rw                  ext3
> # make /dev/hda7 at least 2000 MB
> logical /nobackup 0-    rw                   xfs
> # use mkfs.xfs to format the partition
>
>
> # Create a softRAID
> disk_config raid
> raid1        /    sda1,sdd1  rw,errors=remount-ro    ext2
> # create a RAID-1 on /dev/sda1 and /dev/sdd1, format using mkfs.ext2 and mount
> # it as /
> raid0        -    sdb1,sde1  default                 ext2
> # create a RAID-0 on /dev/sdb1 and /dev/sde1
>
>
> # config an LVM
> disk_config lvm
> pv  my_pv   md2,md3
> # create the physical volume group my_pv on the (RAID) devices /dev/md2 and
> # /dev/md3
> my_pv:_usr      /usr                    2048        rw,notail    reiser
> # create the logical volume _usr on the physical volume group my_pv
>
> ================================examples=======================================
>
>
>
> The major differences:
> - the disk_config ... line allows for the keywords lvm and raid
> - options may be appended to the disk_config line as well, but this may be
>   subject to change
> - the ";" is not used anymore, the options that were given there have now been
>   split up
>   * the filesystem is now an explicit parameter; note, that the order of
>     filesystem/mount-options is not the same as for /etc/fstab, this should
>     possibly be changed, but would result in a major change to the previous
>     format of disk_config
>   * any options to mkfs.xxx may be given
>   * the "boot"-option is one of the options now given on the disk_config line
> - support for LVM and RAID is completely new :-)
>
>
>
> The complete EBNF grammar:
>
> ================================EBNF===========================================
>
> file ::= <lines> EOF
>
> lines ::= EOL
>           /* empty lines or whitespace only */
>           | <comment> EOL
>           | <config> EOL
>
> comment ::= #.*
>
> config ::= disk_config lvm
>            | disk_config raid
>            | disk_config end
>            | disk_config disk[[:digit:]]+( <option>)*
>            | disk_config [^[:space:]]+( <option>)*
>            /* fully qualified device-path or short form, like hda, whereby full
>             * path is assumed to be /dev/hda */
>            | <volume>
>
> option ::= /* empty */
>            | preserve:[[:digit:]]+(,[[:digit:]]+)*
>            /* preserve partitions */
>            | disklabel:(msdos|sun)
>            /* write a disklabel - default is msdos */
>            | bootable:[[:digit:]]
>            /* mark a partition bootable, default is / */
>
> volume ::= <type> <mountpoint> <size> <mount_options> <filesystem> <fs_options>
>            | pv <name> <size>
>            /* lvm pv */
>
> type ::= primary
>          /* for physical disks only */
>          | logical
>          /* for physical disks only */
>          | raid[015]
>          /* raid level */
>          | [^/[:space:]]+:[^/[:space:]]+
>          /* lvm logical volume: pv name and lv name*/
>
> mountpoint ::= -
>                /* do not mount */
>                | swap
>                /* swap space */
>                | /[^[:space:]]*
>                /* fully qualified path */
>
> name ::= [^/[:space:]]+
>          /* lvm volume group name */
>
> size ::= [[:digit:]]+%?(-[[:digit:]]+%?)?
>          /* size in megabytes or %, possibly given as a range; physical
>           * partitions or lvm logical volumes only */
>          | -[[:digit:]]+%?
>          /* size in megabytes or % given as upper limit; physical partitions
>           * or lvm logical volumes only */
>          | preserve[[:digit:]]+
>          /* do not modify this partition */
>          | [^,[:space:]]+(,[^,[:space:]])*
>          /* devices for a raid or lvm pv */
>
> mount_options ::= [^[:space:]]+
>
> filesystem ::= -
>                | swap
>                | [^[:space:]]
>                /* mkfs.xxx must exist */
>
> fs_options ::= .*
>                /* options appended to mkfs.xxx call */
>
> ================================EBNF===========================================
>
> I hope the proposal and the examples are clear enough to allow for a wide
> discussion. In case there is anything to be clarified, please feel free to ask!
>
> Regards,
> Michael
>
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.2.2 (GNU/Linux)
>
> iD8DBQFEU2SFvx6dH3bVKsQRAtlOAJ0cpt0prAb+AxIBNu60Bng7G3xWuwCgoWYw
> fiAdgCWRTV8xZDZaqb79SZM=
> =9J2s
> -----END PGP SIGNATURE-----
>
>
>



More information about the linux-fai-devel mailing list