- MCP server with stdio transport for local use - Search episodes, transcripts, hosts, and series - 4,511 episodes with metadata and transcripts - Data loader with in-memory JSON storage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
198 lines
15 KiB
Plaintext
198 lines
15 KiB
Plaintext
Episode: 4401
|
|
Title: HPR4401: hajime
|
|
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr4401/hpr4401.mp3
|
|
Transcribed: 2025-10-26 00:17:06
|
|
|
|
---
|
|
|
|
This is Hacker Public Radio Episode 4401 from Monday the 16th of June 2025.
|
|
Today's show is entitled Hedge-Ein.
|
|
It is part of a series bash scripting.
|
|
It is hosted by OXO and is about 24 minutes long.
|
|
It carries an explicit flag.
|
|
The summary is, let's see how OXO is using Hedge-Ein in order to install Arch Linux on
|
|
a old network.
|
|
Hello and welcome to another episode of mine for Hacker Public Radio.
|
|
This is my 5th episode.
|
|
My name is OXO and today I'm going to talk about Hedge-Ein.
|
|
You can find Hedge-Ein on my Codeberg repository.
|
|
Like all the tools that I mentioned later in this episode, you can find them on codeberg.org
|
|
slash OXO.
|
|
Hedge-Ein is a script that I have written in the last maybe almost 10 years now.
|
|
With that script I am installing my Arch Linux operating system, my desktop environment,
|
|
my personal settings and basically it is now in a state that I am inserting a USB
|
|
device, switching the computer on, pressing a few buttons now and then and then my
|
|
L system is standing, so that is what I want to demonstrate today.
|
|
Meanwhile I have switched my computer on and it has no operating system on it and this
|
|
computer is a very old one.
|
|
It is a Dell latitude 3189 I think, well yeah 3189 I can see it here in the BIOS.
|
|
Which has been booted meanwhile.
|
|
This computer has only four gigabytes of RAM, no megabytes.
|
|
It has gigabytes of RAM for to be precise and yeah what I have done is I have inserted
|
|
this USB device with Arch ISO on it which I have made with ISO latest.
|
|
I am now going to select that device so it can boot and that was the annoying sound
|
|
which occurs on some machines when you are running Arch ISO and now it is booting
|
|
up the Arch environment.
|
|
And meanwhile I have inserted the second USB stick that I have prepared for this installation.
|
|
So now my computer has booted into the Arch Linux environment to be precise it has booted
|
|
now into Arch Linux 6.14.4-Arge1-2 and we are in a TTY1 environment now.
|
|
So this is basically normally this normal stuff like are you boot from an ISO if you
|
|
have done that before you probably will be familiar with it.
|
|
And I am currently root at Arch ISO so I have root privileges so I don't have to worry
|
|
about SUDO and we are going to start the installation shortly.
|
|
First I want to talk about the second USB device I have prepared.
|
|
On this device I have made three partitions and those partitions are called code repo
|
|
and keys.
|
|
In the keys partition I have all my GPG keys, my SSH keys my password fault is on there
|
|
and stuff like that personal things that have to be kept secret.
|
|
On this second partition that I have made on this USB device there is my code repository
|
|
and this is basically the same as you can find online on Codeberg.
|
|
The third partition that I have made on this USB device is called repo and there are all
|
|
the installation files for the applications that I want to install.
|
|
So basically that is what you normally download from the internet is now on my USB device
|
|
and as copied locally without an internet connection.
|
|
Why did I do this?
|
|
Well because I have basically no internet connection so the internet that I use is via
|
|
my telephone so I have to be very careful not to use too much data and that is why I have
|
|
developed this system.
|
|
So in the meantime my computer has been booted like I said before and what I first always
|
|
do is directory creating a directory TMP TangleMike Papa.
|
|
That is the directory in which I will mount one of the partitions.
|
|
Then I'm going to check always with LSBLK that is a lemasherra bravo lemakilo which partition
|
|
I have to mount and then I say mount slash dev slash sd and in this case it is bravo
|
|
and then number three I always connect code to number three because I now have to mount
|
|
my code partition in order to be able to run hojime and so I say mount dev sdb3 to TMP.
|
|
Now I check if it is mounted properly via LSBLK again and then I can see sdb3 has a partition
|
|
on mounted on root TMP.
|
|
So what I then do is start a shell script shspace temp and then code slash rgma slash
|
|
zero in it dot sh and then I give it a config a config flag dash dash config space TMP
|
|
slash code rgma and then setup I have prepared a configuration file for this so I say setup
|
|
machine dl3189 which is this machine.
|
|
You can run hojime in two ways and now I'm using a configuration file and that is a development
|
|
that I have made in the last few months in which I have set all the important data for
|
|
partitions for sizes of partitions for mount points encryption stuff like that.
|
|
What it basically is is all the questions that are normally asked during an installation.
|
|
The answers on those questions I have put into this configuration file that is how you
|
|
can basically see it.
|
|
So I use a name, a password, the root user name, the root password etc.
|
|
So now I don't have to be interactive anymore and I can press enter and basically walk away
|
|
come back in 10 minutes and then I have passed the first three stages of hojime.
|
|
But I will talk you through it.
|
|
So now we have this line here shtmp code hojime 0enit.sh.
|
|
So 0enit is the first script that hojime will run and it is an initialization script and
|
|
then I give it a flag config dash dash config and then I can say which configuration file
|
|
I wanted to use.
|
|
And I have designated my dl3189.gov which is the configuration file for this del specific
|
|
this del latitude and then I press enter.
|
|
The first screen I will see and I have to be interactive with is a warning basically it
|
|
says quotient active configuration file and it says which file it wanted to use.
|
|
That is the same file as we entered as our value of our config flag of course.
|
|
But yeah just to be sure you can check it here and then it says this file will be used
|
|
for an intended installation hojime repository resource is offline.
|
|
So you can have three different kinds of repository modes so to say which is offline online
|
|
and a hybrid mode.
|
|
And now I am using the offline mode.
|
|
Before continuing be 100% sure that the file designates this machine so that is the file
|
|
mentioned configuration file and all the parameters in the file are correct.
|
|
So I know that those parameters are correct and I press Y to continue.
|
|
And now it is copying the hrgmail to the root and it has done that now and then I get a
|
|
big blob of text that is at my own risk that will erase all data from the designated
|
|
devices and if you want to continue I have to do that with full consent by pressing Y
|
|
and which I do right now.
|
|
So now basically I can wait for a minute or ten maybe the arch Linux installation will
|
|
be done.
|
|
What it is doing now is it is creating partitions and then it is encrypting the LVM partition.
|
|
It is creating the LVM volumes and then it makes the file system which has done already.
|
|
And now it is initializing the GPG so it is initializing the GPG key and this is necessary
|
|
for for example for Pacman, the package manager of arch Linux and now we are waiting.
|
|
I said this one is not so fast but it is working fine.
|
|
So now it has created the GPG keys and now Pacman is started and installing the base group
|
|
of packages which are packages like I see now for instance Pacman, the mirror list,
|
|
pearl, stuff like read lines, sad, pseudo system, all these basic things which you can find
|
|
in the base package group, those are installed now and this is about 600 megabytes and it
|
|
is pretty fast of course because it is local.
|
|
If I had to do this online it would be taking a lot of more time because my internet connection
|
|
is not fast and the other downside of that is that I am losing my data.
|
|
So now I only have to update my main machine and then make a copy of those packages which
|
|
are my USB device and I can run that gladly on this machine without worrying.
|
|
What is it doing now?
|
|
Let's see, it's creating simlink, it has created groups and users and it is now installing
|
|
the stuff that it has copied and now it is basically starting to install.
|
|
The post transaction hooks are now run, I can see now the first time that the make-in-it
|
|
CPIO is run, this is a little bit annoying for me because that make-in-it CPIO is running
|
|
maybe four times I think because every time when there is a package that is touching hooks
|
|
on make-in-it CPIO then it will regenerate that old image again and that's a little bit annoying
|
|
but nevermind because it also takes quite a while so the first time it is running now and you
|
|
see the usual warnings that do not find firmware for a few of these modules which are
|
|
warnings that I see also in these ten years so that's that's interesting stuff which I don't
|
|
know much about but it's running happily and then it's copying the root Hachime which has
|
|
copied before basically one thing is important to notice now now we are entering the second stage
|
|
in which we are entering the charute jail and now we are going to install inside the charute jail
|
|
so the what the true jail is is it is basically a virtual environment and which is the future
|
|
how can I say that the future image of the operating system disk the file system so now it is
|
|
entering that charute jail and it's it is creating the operating system in that jail and then the whole
|
|
two-conve part of my Hachime is running into that inside that charute jail and it's almost finished
|
|
so I have two kernels that I normally install which is the bleeding edge kernel of arglinux and then
|
|
the LTS kernel as well so I've always a fullback kernel in the LTS so meanwhile I'm going to
|
|
tell you where you can find this Hachime repository it's of course on codeback.org slash oxo
|
|
Hachime okay there we have Hachime and meanwhile my del is running the last time makes in its CPIO
|
|
with basically if you see the the readme file on this page Hachime then we are now running inside
|
|
two-conve and after two-conve I have to reboot and because we are in the charute jail I cannot
|
|
do that automatically so that's where the system stops and wait for you to reboot and that's a
|
|
downside and which I have to circumvent one day but it's fine for now so what this and this readme
|
|
file says in one base the script creates a partition table and a UAV system partition
|
|
which system de-boot in order to bootstrap the user space for the latest stable release and the
|
|
long-term support arglinux kernel and then in two cons the script configures settings for time
|
|
network mirror lists bootloader entries for the both kernels the RAM disk and creates a user
|
|
environment and after execution of comp the system is able to boot independently and that's
|
|
where we have come now so I'm going to exit here and then I'm going to you mount
|
|
my slash mnt and then I'm going to reboot reboot I don't forget to remove the usb devices from
|
|
the system so it can reboot quickly for the first time from the NVMe device or in this case it's
|
|
an sva device I see the two kernels so that's working fine arch and arch lts
|
|
archlinux is booting and then the script setup is asking for the password for crypt lvm
|
|
well for the set of purposes I have made it lvks and then I'm set my insert my usb device again
|
|
not the arch iso but the usb device with the three partitions which again are code repo and keys
|
|
archlinux 614-7-2-1 so I think we were starting out on the arch iso with 614-4 something or two
|
|
I'm not sure but now we're on seven because meanwhile my main system has done a few updates already
|
|
for the kernel and now we're on kernel 14.7 and then basically we have to log in as user
|
|
and then I can see connect code and repo media these are the partitions on this usb device that I
|
|
told you about and then I continue archlinux in store with sh-h-h-lash-tree-post.sh with
|
|
I have done now and then my suitable password for the first time it's copying a few latest packages
|
|
and then it will continue with four apps with it is done now so archlinux 4 apps
|
|
going back to the readme now prepares the system for a display manager running under
|
|
wland with wl roots as a modular compositor library and the script will set up sway
|
|
tiling window manager but it can easily modify it to set up for x11 based managers when preferred
|
|
and the script also installs a variety of tools among others for video text file manager
|
|
network management internet system monitoring virtual environments and so on and so forth
|
|
yeah basically you can expand the list at your liking and it will install those packages as well
|
|
of course you must have the packages on your repo the partition on your usb device if you use the
|
|
offline mode of azimuth if you use online mode you can just expand the list at your liking
|
|
and then after apps which is not a brand fully yet but I think it's halfway now after apps there
|
|
is a dtcf and it installs the dot file configuration which contains settings for apps and compositor
|
|
to run smoothly basically that's my desktop environment rice so to say so there we have it and
|
|
in the readme file you can see the requirements the host machine and the usb rs iso and the repo code
|
|
usb2 also know you can have a separate boot device for this computer i don't have a separate boot
|
|
device or meanwhile i see the errors coming in because i still have a problem with installing
|
|
our packages i have to look into that but now it already is at five dtcf and it's
|
|
copying my configuration files right now so this episode is now running for more than half an hour
|
|
now and if within this half an hour i have explained a lot about rgme and meanwhile the computer
|
|
has installed the desktop environment and now also my personal settings it is copying my notes
|
|
as well which you can find also on the codeberg repository and then there is a last question
|
|
starting pwgn which will ever ring out as well i have to check that as well and then there are some
|
|
errors to finish it off with and yeah i still have to look into this but yeah it's a work of 10
|
|
years now and it's not finished yet removing my usb device here and after rebooting
|
|
well don't be too quick so now i see the dialogo i don't do anything and i'm choosing for the
|
|
arch bleeding edge kernel i enter my crypt setup password for the crypt ovm and then again enter my
|
|
username that was a little bit too quick i will be answering out or not now that's fine and then i can
|
|
say sway and then it's running my sway environment i have my bar on top with the work space numbers
|
|
and my clock is working and if i press the mate enter and then i have my electricity terminal
|
|
emulator running smoothly and my colors are as i like it which is base 16 colors and
|
|
the ir black theme so everything is working fine it's about time to get out of here i hope you
|
|
liked this rather quick demonstration of a gmail the arch Linux installation script that was it
|
|
for today i'll see you later in the next episode goodbye
|
|
you have been listening to hacker public radio at hacker public radio does work today show was
|
|
contributed by a hbrlisnet like yourself if you ever thought of recording podcast and click on
|
|
our contribute link to find out how easy it really is hosting for hbr has been kindly provided by
|
|
an honesthost.com the internet archive and our sims.net on this otherwise stated today's show is
|
|
released under creative comments attribution 4.0 international license
|