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