Compare commits
3 Commits
41127138de
...
e72b565530
Author | SHA1 | Date |
---|---|---|
Collin J. Doering | e72b565530 | |
Collin J. Doering | e70266292e | |
Collin J. Doering | cf2be1c40c |
392
TODO.org
392
TODO.org
|
@ -1084,6 +1084,205 @@ CLOSED: [2023-04-01 Sat 23:29] DEADLINE: <2023-04-04 Tue>
|
|||
.guix/rekahsoft/guix-config/proxmox-vm-lvm-minimal.scm:84:11: warning: 'elogind-service' is deprecated, use 'elogind-service-type' instead
|
||||
.guix/rekahsoft/guix-config/proxmox-vm-lvm-minimal.scm:85:11: warning: 'dbus-service' is deprecated, use 'dbus-root-service-type' instead
|
||||
#+end_src
|
||||
*** DONE [#A] Setup guix on lenovo t80s personal laptop
|
||||
CLOSED: [2023-04-02 Sun 21:52] DEADLINE: <2023-03-19 Sun>
|
||||
:PROPERTIES:
|
||||
:ARCHIVE_TIME: 2023-04-02 Sun 21:53
|
||||
:END:
|
||||
- State "DONE" from "DOING" [2023-04-02 Sun 21:52]
|
||||
- State "DOING" from "TODO" [2022-03-14 Mon 11:50]
|
||||
|
||||
**** Notes
|
||||
|
||||
***** Partitioning
|
||||
|
||||
****** Create disk partition table and layout
|
||||
|
||||
#+begin_src bash
|
||||
parted /dev/nvme0n1 mklabel gpt
|
||||
#+end_src
|
||||
|
||||
****** Create EFI partition
|
||||
|
||||
#+begin_src bash
|
||||
parted /dev/nvme0n1p1 set 1 esp on
|
||||
mkfs.fat -F32 /dev/nvme0n1p1
|
||||
#+end_src
|
||||
|
||||
****** Create LUKS container on remainder of disk
|
||||
|
||||
#+begin_src bash
|
||||
cryptsetup luksFormat -l crypt /dev/nvme0n1p2
|
||||
#+end_src
|
||||
|
||||
******* Unlock LUKS container after creation
|
||||
|
||||
#+begin_src bash
|
||||
cryptsetup luksOpen /dev/nvme0n1p2
|
||||
#+end_src
|
||||
|
||||
****** Create LVM2 container inside of LUKS container
|
||||
|
||||
******* Create Physical Volume (pv)
|
||||
|
||||
#+begin_src bash
|
||||
pvcreate /dev/mapper/crypt
|
||||
#+end_src
|
||||
|
||||
******* Create Volume Group (vg)
|
||||
|
||||
#+begin_src bash
|
||||
vgcreate vg0 /dev/mapper/crypt
|
||||
#+end_src
|
||||
|
||||
******* Create Logical Volume/s (vg)
|
||||
|
||||
#+begin_src bash
|
||||
vgcreate -L 442G vg0 -n root
|
||||
vgcreate -l +100%FREE vg0 -n swap
|
||||
#+end_src
|
||||
|
||||
****** Create btrfs 'pool' (file-system) and subvolumes
|
||||
|
||||
******* Create btrfs file-system
|
||||
|
||||
#+begin_src bash
|
||||
mkfs.btrfs -l root /dev/vg0/root
|
||||
#+end_src
|
||||
|
||||
******* Create btrfs subvolumes
|
||||
|
||||
First mount the btrfs top-level file-system.
|
||||
|
||||
#+begin_src bash
|
||||
mount /dev/vg0/root /mnt
|
||||
#+end_src
|
||||
|
||||
Then create the root subvolume.
|
||||
|
||||
#+begin_src bash
|
||||
btrfs subvolume create /mnt/@
|
||||
#+end_src
|
||||
|
||||
Unmount the top-level btrfs file-system.
|
||||
|
||||
#+begin_src bash
|
||||
umount /mnt
|
||||
#+end_src
|
||||
|
||||
Mount the root subvolume.
|
||||
|
||||
#+begin_src bash
|
||||
mount -o subvol=@,compress=zstd /dev/vg0/root /mnt
|
||||
#+end_src
|
||||
|
||||
Create nested subvolumes for ~/gnu/store~ and ~/home~.
|
||||
|
||||
#+begin_src bash
|
||||
mkdir -p /mnt/gnu /mnt/var/log
|
||||
|
||||
btrfs subvolume create /mnt/gnu/store
|
||||
btrfs subvolume create /mnt/home
|
||||
|
||||
# TODO: Should have created these
|
||||
#btrfs subvolume create /mnt/var/log
|
||||
#+end_src
|
||||
|
||||
****** Create and activate swap
|
||||
|
||||
#+begin_src bash
|
||||
mkswap -l swap /dev/vg0/swap
|
||||
swapon /dev/vg0/swap
|
||||
#+end_src
|
||||
|
||||
****** Prepare ~/mnt~ for Guix installation
|
||||
|
||||
Create ~/boot/efi~ directory for UEFI boot and mount the ESP partition there.
|
||||
|
||||
#+begin_src bash
|
||||
mkdir -p /mnt/boot/efi
|
||||
mount /dev/nvme0n1p1 /mnt/boot/efi
|
||||
#+end_src
|
||||
|
||||
Both root and swap are already mounted and ready due to earlier steps.
|
||||
|
||||
***** Install Guix
|
||||
|
||||
Start ~cow-store~ to allow later steps to write store changes to ~/mnt/gnu/store~ as well as
|
||||
to bootstrap the system.
|
||||
|
||||
#+begin_src bash
|
||||
herd start cow-store /mnt
|
||||
#+end_src
|
||||
|
||||
#+begin_src bash
|
||||
guix system init /mnt/etc/config.scm /mnt
|
||||
#+end_src
|
||||
|
||||
****** DONE Figure out how config file should be retrieved
|
||||
CLOSED: [2022-04-20 Wed 11:47]
|
||||
|
||||
- State "DONE" from "TODO" [2022-04-20 Wed 11:47]
|
||||
Figured out. This should be done through a channel, and is now implemented in the
|
||||
[[https://git.home.rekahsoft.ca/rekahsoft-public/guix-machines][guix-machines]] repository.
|
||||
****** DONE Determine what setup looks like if non-free firmware is required
|
||||
CLOSED: [2022-04-20 Wed 11:48]
|
||||
|
||||
- State "DONE" from "TODO" [2022-04-20 Wed 11:48]
|
||||
This is going to require using a pre-built guix image that includes the appropriate firmware
|
||||
and blob loader (non-libre linux kernel).
|
||||
|
||||
****** CANCELED Streamline setup as my own disk image
|
||||
CLOSED: [2023-04-02 Sun 21:52]
|
||||
|
||||
- State "CANCELED" from "TODO" [2023-04-02 Sun 21:52] \\
|
||||
This will be captured in a later TODO
|
||||
***** Setup user-space
|
||||
|
||||
****** Setup flatpak
|
||||
|
||||
Flatpak comes installed on Guix without any system of user remotes. Additionally, a
|
||||
~/var/lib/flatpak~ folder does not exist by default on arch. It could be created, with a
|
||||
group controlling its permissions, but I instead prefer to keep this to be managed on a
|
||||
per-user basis. As such, add flathub as a user remote:
|
||||
|
||||
#+begin_src sh :results output
|
||||
flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
#+end_src
|
||||
|
||||
******* DONE Look into output
|
||||
CLOSED: [2022-04-20 Wed 11:48]
|
||||
|
||||
- State "DONE" from "TODO" [2022-04-20 Wed 11:48]
|
||||
#+begin_src text
|
||||
Note that the directories
|
||||
|
||||
'/var/lib/flatpak/exports/share'
|
||||
'/home/collin/.local/share/flatpak/exports/share'
|
||||
|
||||
are not in the search path set by the XDG_DATA_DIRS environment variable, so
|
||||
applications installed by Flatpak may not appear on your desktop until the
|
||||
session is restarted.
|
||||
#+end_src
|
||||
|
||||
******* DONE Install flatpak applications
|
||||
CLOSED: [2023-04-02 Sun 21:44]
|
||||
|
||||
- Note taken on [2023-04-02 Sun 21:44] \\
|
||||
Created a TODO item for my dotfiles to resolve this
|
||||
- State "DONE" from "TODO" [2023-04-02 Sun 21:44]
|
||||
I don't currently know which applications I will be using from flatpak. It will be a fallback
|
||||
if the package is not available in Non-Guix or Guix repositories, and cannot be easily
|
||||
packaged.
|
||||
|
||||
I will need to develop a nice way to automatically make sure flatpak applications are
|
||||
installed. For the time being, I will just keep track of what has been installed here.
|
||||
|
||||
#+begin_src bash
|
||||
flatpak install flathub us.zoom.Zoom
|
||||
flatpak install com.plexamp.Plexamp
|
||||
#+end_src
|
||||
|
||||
** Backlog :backlog:
|
||||
DEADLINE: <1990-05-08 Tue>
|
||||
*** TODO Setup data volumes for all vms, migrating persistent data to them
|
||||
|
@ -1158,6 +1357,11 @@ DEADLINE: <2023-04-30 Sun>
|
|||
|
||||
*** TODO Setup guix on personal pinebook pro
|
||||
|
||||
See:
|
||||
- http://www.joyofsource.com/guix-system-on-the-pinebook-pro.html
|
||||
- https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/system/images/pinebook-pro.scm
|
||||
- https://github.com/Millak/guix-config/blob/master/pinebookpro.scm
|
||||
|
||||
*** TODO Setup guix on dell personal laptop
|
||||
|
||||
** Ideas :spike:
|
||||
|
@ -1323,191 +1527,3 @@ configuration file in place.
|
|||
|
||||
Alternatively, the docker-configuration could be updated to support setting logging
|
||||
configuration and other options.
|
||||
** DOING [#A] Setup guix on lenovo t80s personal laptop
|
||||
DEADLINE: <2023-03-19 Sun>
|
||||
- State "DOING" from "TODO" [2022-03-14 Mon 11:50]
|
||||
|
||||
*** Notes
|
||||
|
||||
**** Partitioning
|
||||
|
||||
***** TODO Create disk partition table and layout
|
||||
|
||||
#+begin_src bash
|
||||
# TODO: Create gpt labeled disk
|
||||
#+end_src
|
||||
|
||||
***** Create EFI partition
|
||||
|
||||
#+begin_src bash
|
||||
parted /dev/nvme0n1p1 set 1 esp on
|
||||
mkfs.fat -F32 /dev/nvme0n1p1
|
||||
#+end_src
|
||||
|
||||
***** Create LUKS container on remainder of disk
|
||||
|
||||
#+begin_src bash
|
||||
cryptsetup luksFormat -l crypt /dev/nvme0n1p2
|
||||
#+end_src
|
||||
|
||||
****** Unlock LUKS container after creation
|
||||
|
||||
#+begin_src bash
|
||||
cryptsetup luksOpen /dev/nvme0n1p2
|
||||
#+end_src
|
||||
|
||||
***** Create LVM2 container inside of LUKS container
|
||||
|
||||
****** Create Physical Volume (pv)
|
||||
|
||||
#+begin_src bash
|
||||
pvcreate /dev/mapper/crypt
|
||||
#+end_src
|
||||
|
||||
****** Create Volume Group (vg)
|
||||
|
||||
#+begin_src bash
|
||||
vgcreate vg0 /dev/mapper/crypt
|
||||
#+end_src
|
||||
|
||||
****** Create Logical Volume/s (vg)
|
||||
|
||||
#+begin_src bash
|
||||
vgcreate -L 442G vg0 -n root
|
||||
vgcreate -l +100%FREE vg0 -n swap
|
||||
#+end_src
|
||||
|
||||
***** Create btrfs 'pool' (file-system) and subvolumes
|
||||
|
||||
****** Create btrfs file-system
|
||||
|
||||
#+begin_src bash
|
||||
mkfs.btrfs -l root /dev/vg0/root
|
||||
#+end_src
|
||||
|
||||
****** Create btrfs subvolumes
|
||||
|
||||
First mount the btrfs top-level file-system.
|
||||
|
||||
#+begin_src bash
|
||||
mount /dev/vg0/root /mnt
|
||||
#+end_src
|
||||
|
||||
Then create the root subvolume.
|
||||
|
||||
#+begin_src bash
|
||||
btrfs subvolume create /mnt/@
|
||||
#+end_src
|
||||
|
||||
Unmount the top-level btrfs file-system.
|
||||
|
||||
#+begin_src bash
|
||||
umount /mnt
|
||||
#+end_src
|
||||
|
||||
Mount the root subvolume.
|
||||
|
||||
#+begin_src bash
|
||||
mount -o subvol=@,compress=zstd /dev/vg0/root /mnt
|
||||
#+end_src
|
||||
|
||||
Create nested subvolumes for ~/gnu/store~ and ~/home~.
|
||||
|
||||
#+begin_src bash
|
||||
mkdir -p /mnt/gnu /mnt/var/log
|
||||
|
||||
btrfs subvolume create /mnt/gnu/store
|
||||
btrfs subvolume create /mnt/home
|
||||
|
||||
# TODO: Should have created these
|
||||
#btrfs subvolume create /mnt/var/log
|
||||
#+end_src
|
||||
|
||||
***** Create and activate swap
|
||||
|
||||
#+begin_src bash
|
||||
mkswap -l swap /dev/vg0/swap
|
||||
swapon /dev/vg0/swap
|
||||
#+end_src
|
||||
|
||||
***** Prepare ~/mnt~ for Guix installation
|
||||
|
||||
Create ~/boot/efi~ directory for UEFI boot and mount the ESP partition there.
|
||||
|
||||
#+begin_src bash
|
||||
mkdir -p /mnt/boot/efi
|
||||
mount /dev/nvme0n1p1 /mnt/boot/efi
|
||||
#+end_src
|
||||
|
||||
Both root and swap are already mounted and ready due to earlier steps.
|
||||
|
||||
**** Install Guix
|
||||
|
||||
Start ~cow-store~ to allow later steps to write store changes to ~/mnt/gnu/store~ as well as
|
||||
to bootstrap the system.
|
||||
|
||||
#+begin_src bash
|
||||
herd start cow-store /mnt
|
||||
#+end_src
|
||||
|
||||
#+begin_src bash
|
||||
guix system init /mnt/etc/config.scm /mnt
|
||||
#+end_src
|
||||
|
||||
***** DONE Figure out how config file should be retrieved
|
||||
CLOSED: [2022-04-20 Wed 11:47]
|
||||
|
||||
- State "DONE" from "TODO" [2022-04-20 Wed 11:47]
|
||||
Figured out. This should be done through a channel, and is now implemented in the
|
||||
[[https://git.home.rekahsoft.ca/rekahsoft-public/guix-machines][guix-machines]] repository.
|
||||
***** DONE Determine what setup looks like if non-free firmware is required
|
||||
CLOSED: [2022-04-20 Wed 11:48]
|
||||
|
||||
- State "DONE" from "TODO" [2022-04-20 Wed 11:48]
|
||||
This is going to require using a pre-built guix image that includes the appropriate firmware
|
||||
and blob loader (non-libre linux kernel).
|
||||
|
||||
***** TODO Streamline setup as my own disk image
|
||||
|
||||
**** Setup user-space
|
||||
|
||||
***** Setup flatpak
|
||||
|
||||
Flatpak comes installed on Guix without any system of user remotes. Additionally, a
|
||||
~/var/lib/flatpak~ folder does not exist by default on arch. It could be created, with a
|
||||
group controlling its permissions, but I instead prefer to keep this to be managed on a
|
||||
per-user basis. As such, add flathub as a user remote:
|
||||
|
||||
#+begin_src sh :results output
|
||||
flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
#+end_src
|
||||
|
||||
****** DONE Look into output
|
||||
CLOSED: [2022-04-20 Wed 11:48]
|
||||
|
||||
- State "DONE" from "TODO" [2022-04-20 Wed 11:48]
|
||||
#+begin_src text
|
||||
Note that the directories
|
||||
|
||||
'/var/lib/flatpak/exports/share'
|
||||
'/home/collin/.local/share/flatpak/exports/share'
|
||||
|
||||
are not in the search path set by the XDG_DATA_DIRS environment variable, so
|
||||
applications installed by Flatpak may not appear on your desktop until the
|
||||
session is restarted.
|
||||
#+end_src
|
||||
|
||||
****** TODO Install flatpak applications
|
||||
|
||||
I don't currently know which applications I will be using from flatpak. It will be a fallback
|
||||
if the package is not available in Non-Guix or Guix repositories, and cannot be easily
|
||||
packaged.
|
||||
|
||||
I will need to develop a nice way to automatically make sure flatpak applications are
|
||||
installed. For the time being, I will just keep track of what has been installed here.
|
||||
|
||||
#+begin_src bash
|
||||
flatpak install flathub us.zoom.Zoom
|
||||
flatpak install flathub com.slack.Slack
|
||||
#+end_src
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
(url "https://git.savannah.gnu.org/git/guix.git")
|
||||
(branch "master")
|
||||
(commit
|
||||
"c4cca9cb5d3e93ef146acb930a95da9d2da6fb06")
|
||||
"af22b0de661c6dbb0c4b8df9baee8c13dd93dd7e")
|
||||
(introduction
|
||||
(make-channel-introduction
|
||||
"9edb3f66fd807b096b48283debdcddccfea34bad"
|
||||
|
@ -14,7 +14,7 @@
|
|||
(url "https://gitlab.com/nonguix/nonguix")
|
||||
(branch "master")
|
||||
(commit
|
||||
"ceeeb5365de0106919857fbf1cead741b0735cfe")
|
||||
"c31cd7a6d8031affd1960e34ff98db46d1550a05")
|
||||
(introduction
|
||||
(make-channel-introduction
|
||||
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
|
||||
|
|
Loading…
Reference in New Issue