[syslinux] [PULL 0/8] MultiFS suppport for BIOS and EFI

Paulo Alcantara pcacjr at gmail.com
Wed Jul 22 16:27:22 PDT 2015


So last week I was wondering if XFS was still working -- even with its
last on-disk structure changes -- and it _suprisingly_ worked as
expected. Right, now I can finally get rid of GRUB and use Syslinux to
boot my Linux on EFI from a rootfs with xfs. Shit, I have two
partitions (the first one being the required ESP) so there is no way to
access the other partitions since because Syslinux does not support
multiple disk and/or partitions -- yet.

I completly refused to accept that and then looked at the current status
of MultiFS support; its original implementation only worked on BIOS.
Therefore I started working on EFI support and -- luckily enough -- I
also had Raphael to help me with development and testing.

(I'm really glad to hack Syslinux again. What a great project...)

The MultiFS syntax is basically "(hdX,Y)/path/to/file", where X is disk
number and Y is partition number.

Please test it and report to us if any issue found.

Signed-off-by: Paulo Alcantara <pcacjr at zytor.com>

---
The following changes since commit 8702009fc7a6689432d17d4ea05d9c878452c57a:

  efi: rename pxe_handle to image_device_handle (2015-07-19 08:09:10 -0400)

are available in the git repository at:

  git://git.zytor.com/users/pcacjr/syslinux.git multifs-for-upstream

for you to fetch changes up to b8ca887baec49b6375e12a2ef5847dd4f2017232:

  efi/multifs: fix misuse of static private information (2015-07-22 19:20:43 -0300)

----------------------------------------------------------------
Paulo Alcantara (5):
      ldlinux/kernel: contemplate multifs path syntax
      efi: add MultiFS support
      sys/common: handle multifs paths in findpath()
      multifs: add support for both UEFI and BIOS firmware
      efi/multifs: fix misuse of static private information

Raphael S. Carvalho (3):
      Move partiter from com32/chain to com32/lib/syslinux
      core: MultiFS infrastructure added.
      Wire up MultiFS support.

 com32/chain/Makefile                         |   2 +-
 com32/chain/chain.c                          |   4 +-
 com32/chain/mangle.c                         |   4 +-
 com32/chain/mangle.h                         |   2 +-
 com32/chain/options.c                        |   4 +-
 com32/elflink/ldlinux/kernel.c               |   9 ++
 com32/elflink/ldlinux/ldlinux.c              |   9 ++
 com32/include/syslinux/multifs_utils.h       |  32 ++++
 com32/{chain => include/syslinux}/partiter.h |   0
 com32/{chain => include/syslinux}/utility.h  |   3 +-
 com32/lib/sys/module/common.c                |   7 +-
 com32/lib/syslinux/multifs_utils.c           |  91 +++++++++++
 com32/{chain => lib/syslinux}/partiter.c     |   6 +-
 com32/{chain => lib/syslinux}/utility.c      |   2 +-
 core/bios.c                                  |  11 ++
 core/fs/cache.c                              |   2 +-
 core/fs/diskio.c                             |  28 +++-
 core/fs/diskio_bios.c                        |  40 ++---
 core/fs/fs.c                                 |  21 ++-
 core/fs/readdir.c                            |   8 +-
 core/include/multifs.h                       |  50 ++++++
 core/multifs.c                               | 221 +++++++++++++++++++++++++++
 core/multifs_bios.c                          |  75 +++++++++
 efi/diskio.c                                 |  32 ++--
 efi/main.c                                   |  26 +++-
 efi/multifs.c                                | 166 ++++++++++++++++++++
 efi/multifs_utils.h                          |  52 +++++++
 mk/lib.mk                                    |   3 +-
 28 files changed, 845 insertions(+), 65 deletions(-)
 create mode 100644 com32/include/syslinux/multifs_utils.h
 rename com32/{chain => include/syslinux}/partiter.h (100%)
 rename com32/{chain => include/syslinux}/utility.h (97%)
 create mode 100644 com32/lib/syslinux/multifs_utils.c
 rename com32/{chain => lib/syslinux}/partiter.c (99%)
 rename com32/{chain => lib/syslinux}/utility.c (99%)
 create mode 100644 core/include/multifs.h
 create mode 100644 core/multifs.c
 create mode 100644 core/multifs_bios.c
 create mode 100644 efi/multifs.c
 create mode 100644 efi/multifs_utils.h

-- 
2.1.0



More information about the Syslinux mailing list