oclug-live-distro
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
oclug-live-distro [2017/04/04 17:05] – [References] jcnash | oclug-live-distro [2024/03/31 15:34] (current) – ↷ Links adapted because of a move operation scott5 | ||
---|---|---|---|
Line 6: | Line 6: | ||
Collected comments are on page(s) [[2017comments|2017comments]] in reverse date order. | Collected comments are on page(s) [[2017comments|2017comments]] in reverse date order. | ||
- | ==== Planning outline for OCLUG live USB distro ==== | ||
- | Date: 17-3-4 | + | ==== Live Distro Planning Document ==== |
- | ==== Goals: ==== | + | * [[livedistro:plan2017|livedistro: |
- | * Unordered List Item" | ||
- | * customizable | ||
- | * remasterable | ||
- | * installable | ||
- | * documented, both for " | ||
- | ==== Base ideas: ==== | + | ==== EFI Booting |
- | + | ||
- | We have a preliminary liveUSB/iso that is | + | |
- | * Arch based | + | |
- | * boots UEFI or legacy | + | |
- | * 32 or 64 bit, and boots on non-pae processor | + | |
- | * This also boots in VirtualBox VM | + | |
- | * can run startx to come up in openbox (manual start) | + | |
- | * very minimal | + | |
- | + | ||
- | + | ||
- | ==== Tasks: ==== | + | |
- | A goal is to have these "bite sized" if possible | + | |
- | + | ||
- | * Graphical interface | + | |
- | * openbox configuration | + | |
- | * openbox add-ons such as | + | |
- | * tint2 - system panel and task bar | + | |
- | * conky - system monitor and information center | + | |
- | * nitrogen - for backgrounds | + | |
- | * some documentation on install and configuration for above | + | |
- | + | ||
- | * Customizing the system | + | |
- | * pacman installs | + | |
- | * recommended and necessary tools | + | |
- | * how to remove/ | + | |
- | * checking and verifying system | + | |
- | * documentation of the above | + | |
- | + | ||
- | * Remastering | + | |
- | * getting a new live image from running virtual system | + | |
- | * Are there choices we need to address? | + | |
- | * Testing image in virtual environment | + | |
- | * packaging image onto USB or other media | + | |
- | * appropriate boot mechanisms in place | + | |
- | + | ||
- | * Installer script | + | |
- | * optional inclusion on the image | + | |
- | * how to adjust / test | + | |
- | + | ||
- | ===== Investigation of EFI boot (S Murphy) ===== | + | |
- | + | ||
- | ==== Arch Installation Notes ==== | + | |
- | + | ||
- | Scott Murphy < | + | |
- | * version: 1.0 | + | |
- | * keywords: VMWare, Arch Linux, macOS, UEFI | + | |
- | * 2017-03-21 | + | |
- | + | ||
- | ==== Getting started ==== | + | |
- | + | ||
- | First, the Arch documentation is very good. You can get all of this directly | + | |
- | from it, however it makes a few assumptions that might trip you up if you are | + | |
- | new to arch, UEFI and running under VMWare. | + | |
- | + | ||
- | I'm using VMWare for my Arch install, so this is specific to installing under | + | |
- | VMWare Fusion 8 on macOS. This probably translates pretty much directly to other | + | |
- | installs if you leave out the VMWare items. The other thing is that my install | + | |
- | is the 64-bit install. I don't have a 32-bit system and was not interested in | + | |
- | trying it out in VMWare at this time. Maybe in a update. | + | |
- | + | ||
- | ==== Get a copy of Arch ==== | + | |
- | + | ||
- | You can find the Arch distro links on the [https:// | + | |
- | website], in the https:// | + | |
- | mirror or bittorrent link and get started. I selected the | + | |
- | https:// | + | |
- | the university of Waterloo. I picked the | + | |
- | https:// | + | |
- | image. Once it is downloaded, You can use the iso in whatever way you want. I'm | + | |
- | using it as is, in a virtual DVD drive. | + | |
- | + | ||
- | You can burn it to a DVD if you have something sufficiently old, however if your | + | |
- | device supports booting for USB, I'd go that route. | + | |
- | + | ||
- | NOTE: Add a link to the create a USB version instructions | + | |
- | + | ||
- | ==== Create your VMWare VMX file ==== | + | |
- | + | ||
- | Create a new VMWare machine by selecting `New -> Create a custom virtual | + | |
- | machine` in the VMWare Library. Go through the full creation up to the point | + | |
- | where you start the VM to get the install going. My VM has | + | |
- | + | ||
- | * A 20GB disk | + | |
- | * 1024MB RAM | + | |
- | * A single processor | + | |
- | + | ||
- | ==== Forcing UEFI Boot ==== | + | |
- | + | ||
- | In order to use UEFI, you need to edit the VMX file. Assuming you called the | + | |
- | machine `New Arch VM`, you would find the vmx file in the `~/ | + | |
- | Machines.localized/ | + | |
- | be called `New Arch VM.vmx`. | + | |
- | and a .lck extansion, the library has the file open. Make sure you have the | + | |
- | startup window closed. If there is no `.lck` file, then all you need to do is | + | |
- | edit the file and add the following line to it. | + | |
- | + | ||
- | < | + | |
- | // Interesting, | + | |
- | // I've noticed it before, but it seems to be an issue with lines that wrap | + | |
- | // longer than four lines. | + | |
- | </ | + | |
- | + | ||
- | firmware = " | + | |
- | + | ||
- | + | ||
- | That was pretty straightforward. This will tell VMWare to use UEFI as the boot | + | |
- | method instead of legacy BIOS. | + | |
- | + | ||
- | ==== The actual installation ==== | + | |
- | + | ||
- | This will go more like a series of steps. There will only be extra info where it | + | |
- | gets somewhat odd. | + | |
- | + | ||
- | Now that you have the blank VM created and the VMX file modified, it is time to | + | |
- | get started. | + | |
- | + | ||
- | * Mount the DVD image and connect it to the VM | + | |
- | * Power on the VM. It should autoboot into a root shell | + | |
- | * Verify that you are in UEFI mode | + | |
- | + | ||
- | ls / | + | |
- | + | ||
- | * Make sure you can see the internet (The system should have dhcp'd an address) | + | |
- | + | ||
- | ping archlinux.org | + | |
- | + | ||
- | + | ||
- | * Enable network time protocol | + | |
- | + | ||
- | | + | |
- | | + | |
- | + | ||
- | + | ||
- | * Partition your disk. In this instance, you need to create at least three partitions: | + | |
- | * Boot (512M, fat32) | + | |
- | * Swap (I usually use 256M and hope I never start swapping) | + | |
- | * / (The bulk of the disk) | + | |
- | + | ||
- | * you can use `sgdisk` to create your partitions with the following commands, assuming your disk is /dev/sda: | + | |
- | + | ||
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | + | ||
- | + | ||
- | That should first show you a disk with no partition table, and then the disk with all | + | |
- | three partitions, something like this: | + | |
- | + | ||
- | Disk /dev/sda: 41943040 sectors, 20.0 GiB | + | |
- | | + | |
- | Disk identifier (GUID): 9E17A0DA-9DED-4E62-BAE7-076E1522C21B | + | |
- | | + | |
- | First usable sector is 34, last usable sector is 41943006 | + | |
- | | + | |
- | Total free space is 4061 sectors (2.0 MiB) | + | |
- | + | ||
- | | + | |
- | 1 2048 | + | |
- | 2 | + | |
- | 3 | + | |
- | + | ||
- | + | ||
- | Now that the disk is properly partitioned, | + | |
- | + | ||
- | | + | |
- | | + | |
- | | + | |
- | + | ||
- | + | ||
- | NOTE: UEFI partitions are FAT32 formatted and the UEFI BIOS can read FAT32 partitions to locate | + | |
- | the correct `.efi` file to boot. This also makes it easy to mount that partition | + | |
- | to make fixes. | + | |
- | + | ||
- | What are we going todo? | + | |
- | + | ||
- | . Mount the root partition on /mnt | + | |
- | . Create a new directory to mount the boot partition on and mount it there | + | |
- | . Use the pacstrap program to install the base operating system | + | |
- | . Create a new fstab that reflects the mounted disks | + | |
- | . Chroot to the newly installed OS so initial changes could be made | + | |
- | . Set the timezone | + | |
- | . Set the hardware clock to the running OS | + | |
- | . Enable the en_US locakle and set the system language to en_US UTF8 | + | |
- | . Give the system a hostname | + | |
- | . Let the system refer to itself in a zeroconf (bonjour) way | + | |
- | + | ||
- | In order to acomplish this, enter the following commands: | + | |
- | + | ||
- | mount /dev/sda3 /mnt | + | |
- | mkdir /mnt/boot | + | |
- | mount /dev/sda1 /mnt/boot | + | |
- | | + | |
- | | + | |
- | | + | |
- | ln -sf / | + | |
- | | + | |
- | sed -i ' | + | |
- | | + | |
- | echo " | + | |
- | echo " | + | |
- | echo " | + | |
- | + | ||
- | + | ||
- | ==== Intel based System==== | + | |
- | + | ||
- | If this is an Intel based system, you will need to add the ability to perform | + | |
- | cpu microcode updates. I don't know if this even works under VMWare, but if I | + | |
- | have to install on a physical system, then I want to remember this part. | + | |
- | + | ||
- | You enable the updates that by adding the intel microcode package: | + | |
- | + | ||
- | | + | |
- | + | ||
- | + | ||
- | NOTE: Need to check this out on a test system. I'm not sure you need to perform | + | |
- | this step if you are not using grub. I'm not, so this might be useless. I | + | |
- | happen to like having grub in place, so this is not wasted documentation, | + | |
- | potentially unused. | + | |
- | + | ||
- | In order to fix the bootloader to use the intel microcode upadtes, we need to | + | |
- | install the grub utilities and update the configuration: | + | |
- | + | ||
- | | + | |
- | | + | |
- | + | ||
- | + | ||
- | or you might need to do it inside the EFI setup. That will ne noted in the /boot | + | |
- | secting below. | + | |
- | + | ||
- | Now you should set the root password: | + | |
- | + | ||
- | | + | |
- | + | ||
- | + | ||
- | Congratulations, | + | |
- | just yet. | + | |
- | + | ||
- | ==== The /boot Partition ==== | + | |
- | + | ||
- | This is where it tends to get a little harder to follow. At this point, you can | + | |
- | unmount the disks and reboot - you will not have a bootable system, but you will | + | |
- | have a fully functional system if it could only boot. If you mess | + | |
- | around enough, it will boot, but you may not know what you did or why it works. | + | |
- | I like to compare this to the first time you use grub or PXE boot a system. You | + | |
- | are not sure what is happening under the hood, even though you edited those | + | |
- | files. | + | |
- | + | ||
- | If you rebooted, you will need to boot from your install media again. Don' | + | |
- | bother with the selection 'Boot from Installed System' | + | |
- | offers, it will not boot. | + | |
- | + | ||
- | If you reboot, you need to mount the disks again and chroot again. Once that has | + | |
- | happened, you can continue on and make a bootable system. | + | |
- | + | ||
- | You are going to need some more tools installed, so fire up `pacman` | + | |
- | + | ||
- | | + | |
- | + | ||
- | You can check to see if the system is effectively ready for this by running the | + | |
- | `efivar` command and seeing the output | + | |
- | + | ||
- | | + | |
- | + | ||
- | This should give you a list of " | + | |
- | by a readable word. If so, everything you need is in place. | + | |
- | + | ||
- | This is the secret sauce for making the system bootable: | + | |
- | + | ||
- | | + | |
- | + | ||
- | + | ||
- | NOTE: Intel microcode updates may require the previous line to include two | + | |
- | `initrd=` sections, so the previous line would have `-u " | + | |
- | + | ||
- | ==== Enabling the network ==== | + | |
- | + | ||
- | This is for a wired connection, however the procedure is similar for wireless. | + | |
- | Look at this first and then check out the wireless section of the networking | + | |
- | reference below. | + | |
- | + | ||
- | The legacy `net-utils` have been fully deprecated in the current version of Arch, | + | |
- | so you will be using the `ip` command | + | |
- | + | ||
- | Get the name of the wired interface. It will not be eth0. | + | |
- | + | ||
- | ip link | + | |
- | + | ||
- | + | ||
- | The output will be like: | + | |
- | + | ||
- | 1: lo: < | + | |
- | link/ | + | |
- | 2: ens33: < | + | |
- | link/ether 00: | + | |
- | + | ||
- | The wired interface is **ens33**. | + | |
- | + | ||
- | Assuming you will be using dhcp for your networking, this is how you get it | + | |
- | working. Enter the following commands: | + | |
- | + | ||
- | < | + | |
- | cd / | + | |
- | echo > local.network<< | + | |
- | [Match] | + | |
- | Name=ens33 | + | |
- | + | ||
- | [Network] | + | |
- | DHCP=ipv4 | + | |
- | EOF | + | |
- | systemctl enable systemd-networkd.service | + | |
- | ip a | + | |
- | </ | + | |
- | + | ||
- | If this is a system you rebooted before you configured the network, you can | + | |
- | enable the networking using the command: | + | |
- | + | ||
- | systemctl start systemd-networkd.service | + | |
- | + | ||
- | + | ||
- | The final command, `ip a`, should show that you now have an address on your | + | |
- | local network. This should come up after a reboot. | + | |
- | + | ||
- | ==== Final Steps ==== | + | |
- | + | ||
- | At this point, you should be golden. exit from the chrooted system by typing | + | |
- | `exit` and then unmount the disk partitions using the command `umount -R /mnt` | + | |
- | and then enter `reboot` | + | |
- | + | ||
- | ==== TODO ==== | + | |
- | + | ||
- | * X11 Setup | + | |
- | * Window Manager installation | + | |
- | * TBD | + | |
- | + | ||
- | ==== References ==== | + | |
- | + | ||
- | The following pages (mostly from the Arch Wiki) were used to make these notes. | + | |
- | + | ||
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | + | ||
- | Also looked at: | + | |
- | + | ||
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * http:// | + | |
- | + | ||
- | For creating that USB stick, you can use the traditional `dd` method or try out | + | |
- | https:// | + | |
- | + | ||
- | === Extra Information | + | |
- | + | ||
- | Of course if you would prefer to do the install, including the GUI desktop and | + | |
- | software selection the easy way, there are two projects of note that can help you out. | + | |
- | + | ||
- | They are: | + | |
- | + | ||
- | * [[https:// | + | |
- | * [[https:// | + | |
+ | * [[livedistro: | ||
oclug-live-distro.1491339949.txt.gz · Last modified: 2017/04/04 17:05 by jcnash