Open bobertlo opened 5 years ago
@the-maldridge @nilium any opinions on this? I want to make sure we're on the same page before I start writing this. I'd like to start the main guide and possibly recruit others to write other sections as needed/wanted, because that's a lot of work and I don't want to write about things I'm not familiar with.
I think the if you can split it into nice logical steps like "Disk setup", with separate pages where you can go in depth into encrypted disks etc you can avoid having "alternative" guides.
The raspberrypi and other embedded systems are too different to setup and basically just hey put this image here and boot, I think they are more like using the installer script and not part of the "Advanced installation" unless they are setup similiar by bootstrapping using xbps-install.
Thanks @Duncaen those are good points! Put like that I agree. Since the images are not the same procedure, they should be handled separately, and this might remove the need for different sections.
I'll try writing up the advanced guide and see how disk encryption does or does not fit in that guide.
Also, Im not sure what other things there are to cover within the scope of this document.
Only thing I'd add is that PXE / iPXE booting is probably worth covering at some level. I've at least used iPXE booting for my build server, and documenting that would be probably only a few paragraphs because of how simple it is. Other than that, I don't think I've done any installations that'd fall under this category, so I don't have much of an opinion (edit: except that I don't know if Raspberry Pi counts as advanced).
I also vote for reducing if possible the number of alternative guides. It would be much better imho to have a choose-your-own-adventure flow to it rather than a bunch of guides that are running on rails. To cover @nilium's suggestion maybe you could have a section on "booting the installer" where you could talk about dd or its windows equivalent, iPXE, regular PXE, and whatever other exotic methods people have used.
I also think it would work better broken up. Choose-your-own-adventure sounds really ideal.
One possibility for this is to have something like a very high level overview of an installation, with each step mentioning some of the possible options (LUKS, LVM, filesystems, PXE, etc) and with each of those having it's own page with the necessary info (in the same consice style as all the existing pages). Then, users can pick which ones are relevant to them, and find each topic in it's own page.
Of course, in terms of a real installation, this might mean the reader should be expected have thought through a bit of what they're doing since they wouldn't be following an Arch Wiki type installation guide, where they would have had each step they must do put in front of them. They will have to think for themselves a bit more, but I believe this is for the better in terms of [1] organization of information in void-docs and [2] we already have an installer script for those who don't know what they're doing, so having a "use commands X, Y, Z to get a working install" guide won't add anything.
To be clear, I did mean for the "Advanced Guide" to be presented in logical sections. Thanks for all the input. I'll try to start work on this tomorrow.
@bobertlo have you started on this? If you haven't, I can and I can open up a WIP pull request
@pltrz I hadn't had time yet. You're welcome to try to start one.
As an initial draft layout :
3.3.0 Verify Signature 3.3.1 Boot Live Environment 3.3.2 Shell Choices 3.3.3 Keyboard Layout 3.3.4 Verify Boot Mode 3.3.5 Internet Connection 3.3.6 Partition Disks 3.3.6a lvm 3.3.6b luks 3.3.6c mdraid 3.3.6d Example Layouts 3.3.7 Format Partitions 3.3.8 Mount File System
3.3.9 Selecting Mirrors 3.3.10 nstall Packages / Templates 3.3.11 Chroot 3.3.12 Root / User Password 3.3.13 Fstab 3.3.14 Localization 3.3.15 Time Zone 3.3.16 Network Configuration 3.3.17 Bootloader 3.3.18 rc.conf
if general methodology / flow is ok I can slowly start with each sub-section
@ralphee : This looks like a reasonable start to me. Some of the things could be in a different order, but that's not something to worry about now.
Quickly looking:
I think this is a good plan. Try to start out as minimally as possible. Ideally we would get a streamlined version commited and go from there. Ideally some of the content (like verifying images) would be moved from the Live Install guides to a more general section here also.
Hey there! The guides for rootfs installation for the ready to boot ARM images are currently located in the wiki, as well (as I mentioned here https://github.com/void-linux/void-linux.github.io/issues/88 ). I'd definitely be interested in trying to write a general guide for the ARM boards (even if my experience is mostly with RaspPis), and then only mention the platform specific stuff, without duplicated information. For that, though, I'd need some guidance. Where could such a page fit in the current index structure? And who could help me with curating the ARM board information from the wiki? I can test what's relevant on a Pi Zero, but I don't currently have access to anything else.
alternative bootloaders
@bobertlo what kind of bootloaders are you thinking? At least for rEFInd, it worked exactly the same way it does on Manjaro, so I don't think it requires its own page (unless you wan to document its existence, which is a fair point). Regarding Gummiboot I don't know how much it differs from systemd-boot, so perhaps it requires some documentation. From my experience, at least, the EFI stubs from both work exactly the same.
@ericonr Maybe a plain EFISTUB boot? This certainly shouldn't be recommended for most users, but if you don't want to boot anything but Void, this is the most minimal approach to booting I know of: https://wiki.archlinux.org/index.php/EFISTUB
@ericonr I think grub with BIOS and UEFI would be a good start :)
I'm not sure bootloaders need much void specific setup otherwise. I would guess documentation that would be considered useful would be for other platforms like ARM, but I am not saying specifically we would not add anything else.
It's been a while since anyone has said they're working on this, so I'll add my name to that list.
Here is my work in progress: https://gist.github.com/jeffayle/e8d5565301b549383678f747f3540d8a
notes:
TODO
will be removed from the guide. These are areas that I either need feedback on or to do more research into.I'd appreciate any feedback--do the instructions make sense, is there anything I've missed? If this looks like a viable start, I'll fork the repository and continue work on the guide in there.
RE: UEFI/BIOS. I think UEFI would be the item belonging in its own supplement if that was found necessary. I really don't think it's that confusing. In the end the only thing we can't do is duplicate the entire guide just for the small difference in partitioning and required mounting of that extra partition.
A lot of the bootloader and partitioning issues are covered in the main guide also. I wonder if we could just have a bootloader/partition notes section that everything can point to for an overview, and then just have a base set of example commands in the actual guides.
@jeffayle it would be good to think of this as a collection of guides, vs a monolithic document. I would encourage you to open a pull request if you would like to pursue a guide and recieve feedback, but please consider choosing a tight scope like chroot install, or a partitioning guide.
I really think we would be better off doing this in small pieces, and de duplicate other sections as we go. Modifying other sections can be done as a separate step also.
There are a lot of questions in your gist that are good, but should definitely all be addressed at once. Many of those could be opened as single issues for discussion.
@bobertlo do you disagree with the style of basic chroot install guide + supplements? My intention wasn't to create a monolithic guide, although I do see how I may have presented what I've written so far as a monolithic document.
Right now, I think what makes most sense for me to do is to strip out all my "advanced" sections and get the problems with the basic chroot guide ironed out so that we have a solid chroot installation guide in the docs that can be built upon in guides for more advanced setups.
A lot of the bootloader and partitioning issues are covered in the main guide also. I wonder if we could just have a bootloader/partition notes section that everything can point to for an overview, and then just have a base set of example commands in the actual guides.
I agree with this completely, and that's why the sections I wrote on partitioning and formatting drives are pretty sparse. I'll be sure to go through those docs and make sure that I'm pointing to those sections instead of duplicating anything.
@jeffayle Okay nope i don't disagree. I didn't peruse your gist, just skimmed it.
Yes, I think the best start is a chroot install guide. I think it would be smart to give a lighter treatment to partitioning and UEFI bootloader than we might otherwise, to anticipate other sections. I would really like an explaination of bootstrapping through xbps and then a simple recipe to getting a bootable system, with simple examples that reference other sections for more information. I.E. two lines to setup a locale and a link to that section.
It's not that I don't want everytihng covered, but in my experience it's a lot easier to get a basic coverage merged, and then multiple people can work on further additions. I don't want a giant guide held up in a pull request. :)
Just for safe keeping, some guides about Void:
What are the next steps, once #177 is merged? Is someone working on refactoring fde.md?
I think arm is a pretty big hole in the documentation right now. The download page still points to the wiki because there's nothing in the new manual about arm. I've started putting together some notes on it, but I'd like some feedback on what should go into it and how it should be structured. Unfortunately I only have one arm computer, so I can't test any of this out on most platforms.
Here's what I'm thinking so far,
@jeffayle:
Is someone working on refactoring fde.md?
Not that i'm aware of; @ericonr, is anyone working on this?
(i'm trying to add GH 'assignees' where possible, so it's clearer who's working on what.)
I think arm is a pretty big hole in the documentation right now.
i agree. The relevant open issue is https://github.com/void-linux/void-docs/issues/133. i actually don't have access to any ARM hardware myself (well, apart from my non-rooted phone :-) ), but if appropriate, i can help test things in a QEMU VM.
@flexibeast afaik no one is working on those pages yet. I can be assigned to the FDE one, tentatively.
@jeffayle do you have access to any ARM boards? I ran through the installation on my RaspPi Zero, only. The thing with ARM stuff is:
proot -q
, which uses QEMU?). The important part of this installation is configuring passwords, daemons (linking to /etc/runit/runsvdir/current
instead of /var/service
), and possibly some overlays. I used this repo as a reference: https://github.com/jdek/voidzero do you have access to any ARM boards?
Platforms that void officially supports, just a Raspberry Pi 3. I have a bunch of odd devices with arm processors, but they're all locked down.
proot -q, which uses QEMU?).
This works and is surprisingly easy to setup. It can be done without proot but it involves injecting magic numbers into the kernel. (systemd has some stuff that does this configuration automatically so this isn't an issue on most distributions)
I think all three installation methods should be documented. PLATFORMFS installation can be described as a variation on ROOTFS installation---just instead of chrooting you boot off the disk and login.
chroot installation is going to be very different from x86, but not in ways that we really need to document here. For supported platforms, it should just be a matter of installing an additional something-base
package. For unsupported platforms there's really nothing to say except read the documentation for your device.
@ericonr: Okay, i've just created #284 with you as the assignee. i don't know the details of what needs to be done, so please feel free to describe that there. :-)
I plan to start working on this, but am looking for input on how to handle this. There are SO many installation guides on the wiki, with SO much duplication. My proposal is to create a fleshed out "advanced installation" guide, along with other specific guides, which will only offer differences from the main guide.
Advanced Installation Guide
This guide will detail "manual" installation from start to finish, more in the style of the "live image installer" guide. This guide would be formal and fleshed out, mentioning alternatives to the given procedures. Topics would include:
xbps-install
Alternative Installation Guides
These guides will in every instance possible just reference the "main" advanced installation guide, and not duplicate those steps. They will only present changes to that procedure, and enough context for the user to be able to follow what is happening. Initial topics could include:
Proposed Process