Bu belgede bilgisayarımıza kurulu Arch Linux tabanlı dağıtımın çalışan ISO ortamı haline getirilmesi anlatılacaktır. Söz konusu işlem tamamen "amatör" diyebileceğimiz, yani resmi dağıtım yapımı sürecini kapsamayan kendi kullanımımıza yönelik çalışmayı kapsamaktadır. Bu belge hiç bir şekilde resmi veya gayrı resmi mesuliyet isnadı kabul etmez, herhangi garantisi tahakkukunda bulunmaz. Kendin yap (DIY, "Do It Yourself") mantığına uygun olarak çıkabilecek sorunlarla söz konusu kullanıcının az buçuk çözüm süreçlerine hakim olmalıdırlar.
Yöntem tarafımca denenmiştir.
0. Gerekli ortam:
- En son Arch Linux kurulum ISO ortamı
- Sabit diskimizde gerekli alan
- rsync
- squashfs-tools
- git
- libisoburn
- qemu, virtualbox, vmware gibi sanallaştırma yazılımı
- bolca sabır, zaman + kahve
$ işareti normal kullanıcıyı # ise yetkili kullanıcıyı temsil etmektedir.
1. İlkönce çalışma dizinlerimizi oluşturalım:
$ mkdir -p ~/workdir/{iso,myinstall}
2. Güncel Arch Linux ISO ortamını açalım:
$ bsdtar -xf archlinux-2022.10.01-x86_64.iso -C ~/workdir/iso $ find ~/workdir/iso -type d -exec chmod 0755 {} \; $ find ~/workdir/iso -type f -exec chmod 0644 {} \;
3. Kurulu sistemimizi çalışma dizinine kopyalayalım:
# rsync -av /* ~/workdir/myinstall --exclude=dev/* --exclude=home/$USER/* --exclude=media/* --exclude=mnt/* --exclude=proc/* --exclude=sys/* --exclude=tmp/* --exclude=var/cache/pacman/pkg/* --exclude=var/lib/pacman/sync* --exclude=var/tmp/*
4. Çalışma dizinindeki sisteme arch-install-scripts, mkinitcpio-archiso paketlerini kuralım:
# pacman -S arch-install-scripts mkinitcpio-archiso -r ~/workdir/myinstall/
5. Kullanıcı dizinindeki ayar dosyalarını (.config, .cinnamon, .mozilla, .bashrc, .pam_environment, .bash_profile, .xinitrc vs...) ~/workdir/myinstall/home/$USER dizinine kopyalayım.
$ cp -av ~/.{config,cinnamon,mozilla,{ba,z}shrc,pam_environment,{bash_,z}profile,xinitrc} ~/workdir/myinstall/home/$USER
6. ~/workdir/myinstall/etc/mkinitcpio.conf dosyasına archiso ve archiso_loop_mnt kancalarını ekleyelim.
Not: Eğer söz konusu ayar dosyasında udev yerine systemd eklediysek eski haline çevirmeliyiz (systemd silip udev ekliyoruz), archiso malesef systemd ile düzgün çalışmıyor.
7. ISO ortamımız için initramfs dosyasını oluşturalım:
$ sudo ~/workdir/myinstall/usr/bin/arch-chroot ~/workdir/myinstall mkinitcpio -P $ sudo cp ~/workdir/myinstall/boot/vmlinuz-linux* ~/workdir/myinstall/boot/initramfs-linux*.img ~/workdir/iso/arch/boot/x86_64/ $ sudo rm -f ~/workdir/iso/boot/arch/x86_64/*fallback*
Not: Kullandığımız çekirdeğe(-klere) göre ~/workdir/myinstall/boot dizininde oluşan dosyaların isimleri farklılık gösterebilir (örn. vmlinuz-linux-lts, vmlinuz-linux-zen gibi), bunları ~/workdir/iso/arch/boot/x86_64/ dizinine kopyalayınca önyükleyici ayarlarına düzgün biçimde eklemeliyiz.
8. ISO ortamımız için güncel paket listesini ekleyelim:
$ pacman -Q -r ~/workdir/myinstall > ~/workdir/iso/arch/pkglist.x86_64.txt
9. Gereksiz dosya ve dizinleri temizleyelim
~/workdir/myinstall dizininde:
-
- /var/cache, /var/log, /var/spool, /var/db/sudo/lectured dizinlerinde gereksiz dosyaları siler ya da içeriğini sıfırlayabiliriz.
- /home dizininde diğer yerel kullanıcılara ait dizinleri silmeliyiz:
$ sudo ~/workdir/myinstall/usr/bin/arch-chroot ~/workdir/myinstall userdel -fr kullanici
-
- /etc dizininde kişisel verileri silmeliyiz (örn. Ağ şifreleri), gereksiz systemd servislerini devre dışı bırakmalıyız.
- /etc/fstab dosyasını sıfırlamalıyız, varsa /etc/crypttab silmeliyiz:
# truncate -s 0 ~/workdir/myinstall/etc/fstab
-
- /boot dizininin içeriğini silmeliyiz:
# rm -rfv ~/workdir/myinstall/boot/*
~/workdir/iso dizininde eski önyükleyici yapılandırmalarını kaldırmalıyız:
$ rm -rfv ~/workdir/iso/{syslinux,EFI,arch/grubenv}
10. Sistem airootfs imajı ve sağlama dosyası oluşturma:
$ rm ~/workdir/iso/arch/x86_64/airootfs.* $ sudo mksquashfs ~/workdir/myinstall ~/workdir/iso/arch/x86_64/airootfs.sfs -b 1M -comp xz -Xbcj x86 -Xdict-size 1M $ cd ~/workdir/iso/arch/x86_64/ $ sha512sum airootfs.sfs > airootfs.sha512
11. ~/workdir/iso dizini erişimleri ayarlama:
$ sudo find ~/workdir/iso -exec chown $USER:$USER {} \; $ sudo find ~/workdir/iso -type d -exec chmod 0755 {} \; $ sudo find ~/workdir/iso -type f -exec chmod 0644 {} \;
12. Önyükleyici kurma ve ayarlama:
git clone https://github.com/limine-bootloader/limine.git --branch=v4.x-branch-binary --depth=1 ~/workdir/limine-bin cp ~/workdir/limine-bin/limine*{sys,bin} ~/workdir/iso cat << EOF > ~/workdir/iso/limine.cfg DEFAULT_ENTRY=1 TIMEOUT=30 VERBOSE=yes INTERFACE_BRANDING=My Custom Arch ISO INTERFACE_BRANDING_COLOUR=2 TERM_BACKGROUND=88000000 :Custom Arch ISO COMMENT=Boot custom Archiso PROTOCOL=linux KERNEL_PATH=boot:///arch/boot/x86_64/vmlinuz-linux MODULE_PATH=boot:///arch/boot/intel-ucode.img MODULE_PATH=boot:///arch/boot/x86_64/initramfs-linux.img CMDLINE=archisobasedir=arch archisolabel=CUSTOMISO :UEFI shell (UEFI only) COMMENT=Run UEFI shell PROTOCOL=chainload IMAGE_PATH=boot:///shellx64.efi :Boot next COMMENT=Boot next available boot option PROTOCOL=chainload_next EOF
Farklı çekirdekler için yeni girdiler ekleyebilir veya mevcut olanı düzenleyebilirsiniz.
Not: limine önyükleyicisi 4 GiB ve üzeri ISO dosyalarını çalıştıramaz.
13. ISO kalıbı oluşturma:
$ xorriso -as mkisofs -eltorito-boot limine-cd.bin -no-emul-boot -boot-load-size 4 -boot-info-table --efi-boot limine-cd-efi.bin -iso-level 3 -full-iso9660-filenames -joliet -joliet-long -rational-rock -volid CUSTOMISO -output ~/workdir/mycustom.iso ~/workdir/iso
Çalışma dizininde mycustom.iso oluştulunca, sanallaştırma yazılımıyla test edebiliriz. İşlem başarıyla bittiğinde ISO dosyamızı taşıyıp çalışma dizini ~/workdir komple kaldırabiliriz:
$ sudo rm -rf ~/workdir
Güzel bir archiso belgesi olmuş, eline sağlık kardeşim. Bende geleneksel olarak Arch kurulum videosu hazırlayacağım müsait zamanda. Son aylarda hayli yoğundum.
Arch Linux Türkiye ortamına da eklersen sevinirim.
https://archlinux.org.tr/forum/
archman.org - Bizi bilen iyi bilir, bilmeyen de kendi gibi bilir.!
Arch Linux Türkiye ortamına da eklersen sevinirim.
https://archlinux.org.tr/forum/
Demiray hocam malesef archlinux.org.tr giriş yapamıyorum, kayıt oldum, onay e-postası gelmedi, dolayısıyla şifrem de belirlenemedi, birkaç defa şifre sıfırlamaya çalıştım iki keresinde şema (template) e-postası aldım:
Merhaba! [User_login] e-posta adresini kullanarak hesabınız için şifrenizi sıfırlamamızı istediniz. Bu bir hataysa veya şifre sıfırlama istemediyseniz, bu e-postayı dikkate almayın; hiçbir işlem yapılmayacaktır. Şifrenizi sıfırlamak için aşağıdaki adresi ziyaret edin: [Reset_password_url] Teşekkürler!
Şimdi ise şifre sıfırlamak için herhangi e-posta dahi almıyorum. (spam klasörüne baktım)
Konuyla ilgili size e-posta iletisi göndermiştim, spam filtrelerine takılmış, yahut diğer iletiler arasında kaybolduğunu varsaymaktayım.
Yeni kayıt yaparsak uygun olur. Oraya kullanıcı aktarmadık, sıfırdan inşa olmaya başlasın dedik
archman.org - Bizi bilen iyi bilir, bilmeyen de kendi gibi bilir.!
Şu an kullanıcı adım alicavus ve e-posta adresim zaten kayıtlı olduğu için archlinux.org.tr kayıt ol kısmından yeni kayıt yapamıyorum. İlk kaydı yaptığımda onay e-postası gelmedi, halihazırda şifremi de sıfırlayamıyorum.
Etkinleştirdim giriş yapmayı deneyin
archman.org - Bizi bilen iyi bilir, bilmeyen de kendi gibi bilir.!
Demiray hocam archlinux.org.tr sisteminin e-posta göndermesinde sorun yaşanıyor sanırsam. Şifremi unutulan parola kısmından sıfırlamaya çalıştım, malesef sıfırlama linkini alamadım (ilk belirlenen şifre bana iletilmediği için şu an giriş yapamıyorum).
Eğer uygun olursa sizin belirlediğiniz şifreyi sistemde kayıtlı e-posta adresime gönderebilir misiniz?
PS: Ne "Inbox", ne de "Spam" klasöründe archlinux.org.tr'den gelen ileti yok.
Gönderdim 😉
archman.org - Bizi bilen iyi bilir, bilmeyen de kendi gibi bilir.!