I have upgraded my four (4) main phones to android 15, and installed magisk, lsposed framework, and BCR, to ensure my normal required functionality is present.
I have upgraded my four (4) main phones to android 15, and installed magisk, lsposed framework, and BCR, to ensure my normal required functionality is present.
Drove past a bright-orange Lamborghini parked at the side of Canal Street this morning. It had a Kuwaiti registration plate.
Perhaps Fawaz and Billy are back for Unfinished Business #3.
Was there a cardboard CalMac Ferry moored in the canal? If so, I'd say defo.
Boot machine with Nixos installer usb. Close installer, open terminal, open firefox at
https://github.com/vimjoyer/impermanent-setup
Become su by running sudo su
add tree
to the shell with
nix-shell -p tree
use lsblk
to determine disk to install to.
In this case identifies sda
Download the disko configuration
curl https://raw.githubusercontent.com/vimjoyer/impermanent-setup/main/final/disko.nix -o /tmp/disko.nix
replace "/dev/vda"
with "/dev/sda"
Partition the drives using disko.nix flake
sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/disko.nix --arg device '"/dev/sda"'
Use lsblk
to check partitions. We should have these sub volumes mounted at /mnt
- check with tree /mnt
tree /tmp
/mnt
├──boot
├──nix
└──persist
/tmp
├──disko.nix
Generate with sudo nixos-generate-config --no-filesystems --root /mnt
/mnt
├──boot
├──etc
│ └──nixos
│ ├──configuration.nix
│ └──hardware-configuration.nix
├──nix
└──persist
/tmp
├──disko.nix
Move disko.nix into the config files directory with mv /tmp/disko.nix /mnt/etc/nixos/
/mnt
├──boot
├──etc
│ └──nixos
│ ├──configuration.nix
│ ├──disko.nix
│ └──hardware-configuration.nix
├──nix
└──persist
Initialise flake using
nix --extra-experimental-features "nix-command flakes" flake init --template github:vimjoyer/impermanent-setup
# flake.nix
{
description = "Nixos config flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
# impermanence = {
# url = "github:nix-community/impermanence";
# };
# home-manager = {
# url = "github:nix-community/home-manager";
# inputs.nixpkgs.follows = "nixpkgs";
# };
};
outputs = {nixpkgs, ...} @ inputs:
{
nixosConfigurations.default = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
inputs.disko.nixosModules.default
(import ./disko.nix { device = "/dev/vda"; })
./configuration.nix
# inputs.home-manager.nixosModules.default
# inputs.impermanence.nixosModules.impermanence
];
};
};
}
Move the flake.nix to the configuration directory with mv flake.nix /mnt/etc/nixos/
/mnt
├──boot
├──etc
│ └──nixos
│ ├──configuration.nix
│ ├──disko.nix
│ ├──flake.nix
│ └──hardware-configuration.nix
├──nix
└──persist
Edit nano /mnt/etc/nixos/flake.nix
to replace (import ./disko.nix { device = "/dev/vda"; })
with (import ./disko.nix { device = "/dev/sda"; })
to provide the correct disk target
Edit nano /mnt/etc/nixos/configuration.nix
comment out the service.xserver
declarations, to remove a window manager
# services.xserver.enable = true;
# services.xserver.displayManager.gdm.enable = true;
# services.xserver.desktopManager.gnome.enable = true;
add a user declaration
users.users.computer_user = {
isNormalUser = true;
initialPassword = "password";
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
};
add btrfs volume management
boot.initrd.postDeviceCommands = lib.mkAfter ''
mkdir /btrfs_tmp
mount /dev/root_vg/root /btrfs_tmp
if [[ -e /btrfs_tmp/root ]]; then
mkdir -p /btrfs_tmp/old_roots
timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
fi
delete_subvolume_recursively() {
IFS=$'\n'
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
delete_subvolume_recursively "/btrfs_tmp/$i"
done
btrfs subvolume delete "$1"
}
for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
delete_subvolume_recursively "$i"
done
btrfs subvolume create /btrfs_tmp/root
umount /btrfs_tmp
'';
cp -r /mnt/etc/nixos /mnt/persist
cp -r /mnt/etc/nixos /mnt/etc/persist
/mnt
├──boot
├──etc
│ ├──nixos
│ │ ├──configuration.nix
│ │ ├──disko.nix
│ │ ├──flake.nix
│ │ └──hardware-configuration.nix
│ └──persist
│ ├──configuration.nix
│ ├──disko.nix
│ ├──flake.nix
│ └──hardware-configuration.nix
├──nix
└──persist
└──nixos
├──configuration.nix
├──disko.nix
├──flake.nix
└──hardware-configuration.nix
nixos-install --root /mnt --flake /mnt/etc/nixos#default
You will be requested to provide a root password, and confirm it. If that is successful then
reboot
Edit the flake.nix
to uncomment the impermanence settings
{
description = "Nixos config flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
impermanence = {
url = "github:nix-community/impermanence";
};
.
.
.
.
.
./configuration.nix
# inputs.home-manager.nixosModules.default
inputs.impermanence.nixosModules.impermanence
];
Edit the configuration.nix
to add the necessary impermanence settings
fileSystems."/persist".neededForBoot = true;
environment.persistence."/persist/system" = {
hideMounts = true;
directories = [
"/etc/nixos"
"/var/log"
# "/var/lib/bluetooth"
"/var/lib/nixos"
"/var/lib/systemd/coredump"
# "/etc/NetworkManager/system-connections"
{ directory = "/var/lib/colord"; user = "colord"; group = "colord"; mode = "u=rwx,g=rx,o="; }
];
files = [
"/etc/machine-id"
{ file = "/var/keys/secret_file"; parentDirectory = { mode = "u=rwx,g=,o="; }; }
];
};
sudo nixos-rebuild boot --flake /persist/nixos#default
sudo reboot
sudo mkdir -p /etc/
sudo cp -r /persist/nixos /etc
sudo reboot
check with tree /persist
Daughter came home with a consent form for a birthday party. They're not going anywhere, the parents just want my consent to act in a health emergency.
I've told my daughter I don't approve of this friendship. Nothing good can come from parents like that.
What if you don't sign it do they just let her, for example, choke to death or something?
Sounds to me like they just want permission to go in with any weak excuse.
It needs to be returned by January 28th. If it isn't returned, she won't be able to attend.
A health emergency isn't really the time for staging a play, but it's nice they're asking for an opinion.