Re: Boot Loader Spec

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec

   [I see no designated mechanism for feedback, so I'll try this one.]

After reading that spec (last edited 2013-02-14 21:36:10),
I have these comments:

1. Indirection by one level should be supported, such as a file:
     $BOOT/loader/entries/my-purple-project.indir
   having the contents:
      directory  //b098c68b69f54d21848176c25b44da36/purple/boot
   where b098c...da36 is the blkid of a filesystem, which the
   boot loader locates by exhaustive search.
   All .conf files in that directory are processed as if they appeared
   in  $BOOT/loader/entries/ , except that any pathname contained in such
   a .conf file is interpreted in the context of the filesystem that has
   the named blkid.

   Rationale: Updating the boot configuration for the running system
   never should require searching for the location which contains
   the .conf files.  The answer always is some path which has the prefix
   "/boot/", whether that is a local directory or a mount point.

   Part of the reason for the current mess involving boot loaders
   is the insistence that everything must be in one place that the boot
   loader controls.  Instead, multiboot by chain loading is a useful
   option of GRUB1 (especially: chaining to another GRUB1 which is
   installed in the bootblock of a partition and manages only that partition),
   and the 'configfile' indirection feature of GRUB2 is very nice.

2. Filesystem type for $BOOT:  Explicitly allow FAT12, FAT16, FAT32.
   Explicitly disallow FAT32X and NTFS because of complexity.
   ext4 is a headache because it requires more code.  On disk,
   ext3 is the same as ext2 (assuming a clean unmount.)  Obviously
   the boot loader should warn about dirty unmount (which for ext3
   means that the journal will not be processed.)

3. It can be handy if .conf files are syntax-compatible with shell,
   so that they can be parsed and interpreted by ". file1.conf" or
   "source file1.conf", instead of having to write a loop:
      while read line; do set -- "$line"; case "$1" in
            title) ... ;;
            ... ;;
         esac
      done
   Problem areas often are: escaping, quoting, meta characters,
   continuation lines.

   Regarding shell compatibility, it looks like the Boot Loader Spec
   might be aiming for having shell procedures title(), version(), etc.
   However, "machine-id" is not a shell identifier.  Also, shell
   characters such as "\\'\"([{*?<>&$;" (backslash singlequote doublequote
   open leftsquare leftbrace star ask less greater amper dollar semi)
   should be quoted or escaped.
   Sharp '#' should begin a comment anywhere, not only first on a line.

4. Explicitly suggest a mechanism for inter-operating with the 'loader'
   of Microsoft Windows for non-EFI systems.  There are many such systems,
   and they will persist for many years.  If there is no explicit
   suggestion, then there will be different incompatible extensions,
   which will cause pain later.

-- 

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list


[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux