Re: adding swap when expanding root filesystem
Date: Fri, 18 Nov 2022 15:45:26 UTC
On 17 Nov 2022, at 19:03, John-Mark Gurney wrote: > Mike Karels wrote this message on Mon, Nov 07, 2022 at 10:10 -0600: >> This question is not really arm-specific, but I couldn't think of a better >> mailing list for it. >> >> There are peridic issues reported on small systems like Raspberry Pi >> where people are running buildworld or poudriere and running out of >> memory. As the user gets no control over the disk layout when installing, >> there is no option to add swap space on the install image. I have added >> swap space on a USB disk, but this is often not an option. It occurred >> to me that it might be reasonable to add swap space before expanding >> the root filesystem if there is sufficient space. I have a prototype, > > So, if you boot to single user mode, before growfs runs on first boot, > you can manually add a swap partition at the end of the disk. > > You'll need to gpart recover the disk first, so that the gpt (iirc) > covers the remaining disk, and then add a swap partition at the end. > This'll take a bit of math, but isn't too hard. Right, that’s what my prototype does (as part of the growfs script). >> and wondered if this is a good thing to do. Granted, this will often >> create swap on microSD, which is not optimal, but probably better than >> nothing. > > The other option is to use a swap file as outlined in the handbook: > https://docs.freebsd.org/en/books/handbook/config/#create-swapfile > >> The current prototype creates a swap partition which is 1/10 of the disk >> if the disk is at least 15 GB and the initial root partition is no more >> than 1/3 of the disk, but only up to 1.5x of physical memory. I would >> probably enable this by default, but provide a way to disable it via a >> kenv variable and/or a variable in /etc/rc.conf. > > I would like to see the ability to drop a file on the FAT file system > so that the system can be configured at first boot w/o requiring someone > to either boot to single user mode, or have a FreeBSD system. This isn't > too hard, as I have a review already open for it: > https://reviews.freebsd.org/D26713 > > It makes use of cpercival's cloud init, but slightly modified so it looks > on the fat file system that most arm images have. > > with this, it wouldn't be too hard to gin up some commands to automatically > add the swap partition on first boot, but until something like this is > done, it has to be done manually. I like the config script idea, but it runs after the root file system is mounted read/write, and growfs runs before that. Meanwhile, I have added the ability to suppress swap space, or set its size, via either /etc/rc.conf or kernel environment. I will probably have something ready for review soon. Meanwhile, if anyone wants to test (especially on GPT), let me know. Mike > -- > John-Mark Gurney Voice: +1 415 225 5579 > > "All that I will do, has been done, All that I have, has not."