Commit Graph

9 Commits

Author SHA1 Message Date
Gábor Stefanik 6d26855dc6 Support reboot in non-chroot modes using grub and an init script
We use grub-2.06 as 2.12 has some packaging issues, and can't be
built in live-bootstrap for now.
2024-02-04 16:54:13 +01:00
Eduardo Sánchez Muñoz 5243d3b3ce Fix detection of device type (partition/full disk) in move_disk.sh
The version of stat available at that point does not support %Lr, so use instead its hexadecimal counterpar (%T)
2024-01-12 22:39:44 +01:00
fosslinux b2747cb6cf
Merge pull request #392 from Googulator/bare-metal-move-disk
Make move_disk work on bare metal
2024-01-10 07:16:32 +00:00
fosslinux 9ec45654cf
Merge pull request #390 from Googulator/devtmpfs
Use devtmpfs, and improve finalize_fhs.sh
2024-01-08 10:55:57 +00:00
Gábor Stefanik 2a095a3301 After bootstrap, drop to a shell if needed, then shut down cleanly 2024-01-08 05:19:19 +01:00
Gábor Stefanik 6c2144e50a Make move_disk work on bare metal
* Use -S32 -H64 --force to trick sfdisk into allowing MiB-aligned
  partitions on a drive that reports a CHS geometry
* Explicitly create partition at sector 2097152 (=1GiB)
* Force mkfs.ext4 to overwrite any existing filesystem it might find
* Wait up to 2 minutes for the disk to become readable (especially
  USB drives often show up with a delay)
2024-01-02 00:57:29 +01:00
Gábor Stefanik 8341c4e089 Use devtmpfs, and improve finalize_fhs.sh
With this, finalize_fhs.sh can be rerun as needed, e.g. when rebooting.
Also, the preferred nameserver will persist after DHCP.

Thanks to devtmpfs, we no longer need to manage /dev once Linux is up.
2024-01-02 00:15:32 +01:00
fosslinux ab47483a51 Linters & CI updates 2023-12-15 21:44:43 +11:00
fosslinux 6ed2e09f3a Remove the notion of "sys*"
- This idea originates from very early in the project and was, at the
  time, a very easy way to categorise things.
- Now, it doesn't really make much sense - it is fairly arbitary, often
  occuring when there is a change in kernel, but not from builder-hex0
  to fiwix, and sysb is in reality completely unnecessary.
- In short, the sys* stuff is a bit of a mess that makes the project
  more difficult to understand.
- This puts everything down into one folder and has a manifest file that
  is used to generate the build scripts on the fly rather than using
  coded scripts.
- This is created in the "seed" stage.

stage0-posix -- (calls) --> seed -- (generates) --> main steps

Alongside this change there are a variety of other smaller fixups to the
general structure of the live-bootstrap rootfs.

- Creating a rootfs has become much simpler and is defined as code in
  go.sh. The new structure, for an about-to-be booted system, is

/
-- /steps (direct copy of steps/)
-- /distfiles (direct copy of distfiles/)
-- all files from seed/*
-- all files from seed/stage0-posix/*

- There is no longer such a thing as /usr/include/musl, this didn't
  really make any sense, as musl is the final libc used. Rather, to
  separate musl and mes, we have /usr/include/mes, which is much easier
  to work with.
- This also makes mes easier to blow away later.
- A few things that weren't properly in packages have been changed;
  checksum-transcriber, simple-patch, kexec-fiwix have all been given
  fully qualified package names.
- Highly breaking change, scripts now exist in their package directory
  but NOT WITH THE packagename.sh. Rather, they use pass1.sh, pass2.sh,
  etc. This avoids manual definition of passes.
  - Ditto with patches; default directory is patches, but then any patch
    series specific to a pass are named patches-passX.
2023-12-15 21:43:19 +11:00