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 21:07] – [References] jcnash | oclug-live-distro [2024/03/31 19: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.1491340055.txt.gz · Last modified: by jcnash
