Episode: 4422
Title: HPR4422: hajime - part 2 - in depth
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr4422/hpr4422.mp3
Transcribed: 2025-10-26 00:32:06

---

This is Hacker Public Radio Episode 4,422, for Tuesday 15 July 2025.
Today's show is entitled Hadjim Part 2 in Depth.
It is hosted by AXO and is about 17 minutes long.
It carries a clean flag.
The summary is, Hadjim Episode 2 a more in-depth look to its workings and some questions answered.
Outside, the weather is not so nice at the moment.
So I made myself a cup of coffee, took place behind my computer.
I thought this is a nice moment to make a new episode for Hacker Public Radio.
Hello, my name is AXO and today I'm going to talk a little bit more in-depth about Hadjim Part 2.
Hadjim is my installation script that I have written and I've made an episode which holds a report, a live installation of Hadjim.
If you haven't listened to that episode, I recommend you to do that.
So you can get a little bit of an insight about what Hadjim actually does.
After that episode, I received some questions and I also saw that in the news coverage for June of Hacker Public Radio, there was some discussion about Hadjim.
Which I was very happy to see.
Well, of course I didn't saw it, but I heard it.
It's a radio, right?
Anyhow, I'm very happy to share some more light on Hadjim.
And the best way to do this is by just using the repository as a guide.
And then we answer the first question in one go.
Where can I find Hadjim at?
At my codeberk.org repository, which is codeberk.org slash oxo, and there you can find Hadjim.
If you go to oxo.org, yeah, oxo.org, no codeberk.org, sorry, codeberk.org slash oxo,
there you can find seven repositories of mine.
And the third or the fourth one is Hadjim.
You click on Hadjim.org and there you can see the files with the description of Hadjim.org below.
If we look at these files, we can see several shell scripts,
which are ending with .sh and starting, they are all starting with a number.
Starting with number zero, one, two, three, four, and five.
What basically Hadjim does is install the bare bones arch Linux kernel and a working environment.
But that is only a TTI for no desktop environment.
But that environment you have when you run zero, one, two, and three, the modules zero, one, two, and three.
After you have run three post.sh, you are able to reboot your machine independently,
so without the arch iso.
And if you choose to install more apps, then you can run for apps.sh.
And if you want to also set configurations for these apps, then you can run five DTCF.
That is the philosophy behind the modules.
So the first four modules are the basics that you need to run all four,
to have a bootable machine, and then you optionally are the modules four and five.
So I just made some changes again in the repository, which I will push shortly.
I've made a new sub directory called prep in which I have three files,
which are isolators, make recoff and make repo.
These files are necessary in order to create the arch iso boot device.
And to make this one, you use isolators.
And with make recoff, you can make a local repository for Pac-Man.
So the next directory I want to discuss is the Inmer directory, which is an emergency directory.
In this directory, you can find several files.
Under URLs, you can find URL for the Pac-Man static application.
And this Pac-Man static script is also in this emergency directory.
This file you need when your Pac-Man is malfunctioning for whatever reason,
but then you have a independent Pac-Man application.
And then the most important file for me is the rescue.sh script.
When your kernel is corrupt or for any other reason, your arch Linux is not booting properly anymore.
You can use your iso arch iso device to boot your machine and then use the rescue.sh script
to unlock your script setup and build up your LVM.
And then you are able to maintain your system and repair it.
And then the most important directory I skip over miscellaneous, which are basically some reminder notes.
But the most important directory for the installation procedure is the setup directory.
In this setup directory, you find packet-list.sh.
And in this file, you can specify which packages you want to install.
So that was one of the discussion points I, if I remember rightly, in the news coverage
that, yeah, how can you install packages?
Well, this is the place to be.
Under apps packages in this array, basically, it is.
You can follow the syntax as is and add and delete your packages that you like to install or want to have removed.
In that way, you can create your own custom installation.
I think it speaks for itself.
But if you have any questions about this package list, then of course, feel free to ask.
On other importance, a sub directory under setup is a machine.
I open now the DL3189 conf.
This is the configuration file that I used in the previous episode, where I did a live installation of arch using Hachime.
This file is specifically written and all these configuration files are specifically written for specific machines and specific environments.
Please note the line number five there.
Question, you have to be 100% sure that all variables are correct in order to have a successful installation.
I will run through this file line by line and then explain a little bit how the unattended installation is working.
The first variable is the exact mode.
Keep this on default.
I have a debug and a debug for both mode.
But those are not tested, so keep the exact mode on default.
And then you have the next variable, which is online.
If online is zero, then you are in an offline mode, which is the default.
Keep in mind that if you are in offline mode, you must have a local Pac-Man repository available.
But if you want online mode, you can alter this variable to a value of one.
The next variable is after zero in it.
And what these after variables mean, they are occurring in every module.
The purpose of this variable is after the zero in it module has run, continue with the next module, which is one base.
If you don't want it and if you want to run the next module manually, then you have to outcommend this variable.
Then we are into the heading one base, which contains the subheading boot partition.
And this boot partition contains the values for, of course, the boot partition.
The boot partition can be a separate device.
But in this case, both boot and LVM are on the same device, which is SDA.
And then the boot partition gets partition number one, and LVM partition gets partition number two.
The boot partition size is by default 512 megabytes.
But if you want to install more or bigger kernels, then you have to raise this number.
Then the LVM partition, the size of the LVM, I recommend to use the whole LVM partition.
So the entire device minus, of course, the space needed for the boot.
So then I'm going further and there is a next heading LVM part sizes.
In this heading, you specify the size of each partition.
And of course, the sum of these numbers cannot exceed the size of the LVM partition.
So in my case here in this example, the size of the LVM partition is 57 gigabytes.
And then my LVM part sizes are 20 and 10 and two partitions of one gigabyte,
showing total that is 32 gigabytes.
It cannot exceed the 57 mentioned in the size LVM variable.
If you want to have a swap partition as well, then you can leave this variable as is,
otherwise you have to comment it out.
And keep in mind that also the swap size has to be inside the LVM.
Like I mentioned before, the LVM part sizes, including the swap partition size, may not exceed the LVM size.
Then the defaults device, mapper name is CryptLVM.
You can change it as will.
The default looks password important to know, because if you reboot after you have run 2.sh, the second module,
then you have to enter the looks password in order to unlock the CryptLVM.
This password by default is Lux.
You can change this password later.
And then after one base, automatically we start to conf, if you don't want it, and comment after one base.
And then in two conf, we will have a hostname for the machine,
a root password, which is by default, root a user name, which is by default user, and a user password, which is by default user as well.
You can alter these and put your genuine passwords in this file, but I don't recommend it.
I recommend to do that after the installation to change your passwords in the installation itself.
Use to command password WD for this.
After two conf, we will reboot the machine, if you don't want that, and comment after two conf.
So there's nothing specifically set in the three posts and four apps modules.
But under the five, there's dot file.
But under heading number five, there is sway machine designated by DL3189.
And that is a designator in order to run a configuration of sway.
So if you want to dive into that, we need another episode because this one getting quite long already.
Uncommand that if you are planning to run DTCF and prevent having troubles with your sway configuration.
So that's basically the configuration file for an attendant installation.
Then I go back to the set of directory and see that there is a network directory, which is defining the contents of the Etsy hosts file.
This will be copied to the system when installed.
And then the same under the Pac-Man directory, which there are three versions of Pac-Man Comf,
the hybrid offline and online versions, and there is a mirrorless, which should be handy to sometimes update.
But of course only when you're using the online installation mode.
So that is the setup directory.
I just made the last changes to the prep directory.
And also ISO latest is now part of our Gmail.
And it's own repository I have deleted from Colbert.
So ISO latest you can find now under our Gmail prep.
And finally, two other files in this prep directory are made recoff and make repo.
Make repo is a helper file for make recoff.
And when I am...
The idea is the following.
I have my ordinary machine in which I have all my packages installed.
I insert my repo USB device and then I run make recoff repo.
And what this does is it copies all the installed packages on the current machine to the USB device.
And after that, when everything is copied, I can use this USB device as an offline source for Pac-Man
when installing Arch Linux via the Gmail in the offline mode.
So until here, I hope you find this episode useful and I hope it gave a little bit more insight in the workings of our Gmail.
If you have any further questions, please contact me and I will be happy to answer.
So thank you very much for listening and see you later in the next episode.
Goodbye.
You have been listening to Hacker Public Radio at HackerPublicRadio.org.
Today's show was contributed by a HBR listener like yourself.
If you ever thought of recording a podcast, click on our contribute link to find out how easy it really is.
Posting for HBR has been kindly provided by an honesthost.com, the internet archive and our sings.net.
On this advice status, today's show is released on our Creative Commons Attribution 4.0 International License.
