Live Sistem Oluşturma ve Sistem Kurulumu¶
Canlı sistem oluşturma veya RAM üzerinden çalışan sistem hazırlamak için SquashFS dosya sisteminde dağıtım sıkıştırılmalıdır. SquashFS, Linux işletim sistemlerinde sıkıştırılmış bir dosya sistemidir. Sistemimizi sıkıştırır ve ardından salt okunur bir dosya sistemine dönüştürür.
SquashFS Oluşturma¶
# mksquashfs input_source output/filesystem.squashfs -comp xz -wildcards
mksquashfs initrd $HOME/distro/filesystem.squashfs -comp xz -wildcards
Cdrom Erişimi¶
Cd veya Dvd aygıtı Linux sistemlerinde /dev/sr0 aygıt dosyası olarak erişilir. Cd içeriği üzerinde okuma yapmak için aşağıdaki komutu kullanabiliriz.
cat /dev/sr0
Cdrom Bağlama¶
mkdir cdrom
mount /dev/sr0 /cdrom
Bu işlem sonucunda cdrom bağlanmış olacaktır. ISO dosyamızın içerisine erişebiliriz.
Squashfs Dosyasını Bulma¶
Genellikle isoların içine squashfs dosyası oluşturulur. Bu sayede live yükleme yapılabilir. Örneğin, /live/filesystem.squashfs imaj dosyalarında konumudur.
Squashfs Bağlama¶
Squashfs dosyasını bağlamadan önce loop modülünün yüklü olması gerekmektedir. Eğer yüklemediyseniz;
# loop modülü yüklenir.
modprobe loop
mkdir kaynak
mount -t squashfs -o loop cdrom/live/filesystem.squashfs /kaynak
Squashfs Sistemine Geçiş¶
Yukarıdaki adımlarda squashfs dosyamızı /kaynak adında dizine bağlamış olduk. Bu aşamadan sonra sistemimizin bir kopyası olan squashfs canlıdan erişilebilir veya sistemi buradan başlatabiliriz.
Squashfs dosya sistemimize bağlanmak için;
chroot canli /bin/bash
Bu işlemin yerine exec komutuyla bağlanırsak sistemimiz id "1" değeriyle çalıştıracaktır. Eğer sistemin bu dosya sistemiyle açılmasını istiyorsak exec ile çalıştırıp id=1 olmasına dikkat etmeliyiz.
Bu bölümde /kaynak bağlanan sistemin disk üzerine kopyalanması ve sisk üzerinden sistemi açacak şekilde hazırlanmasını iki senaryo için anlatılmıştır.
1-Tek Bölüm Kurulumu¶
Hazırlıklar:
Disk işlemleri için evdev veya udevd servislerinin aktif olması gerekir.
Gerekli çekirdek modüllerini yükleyin:
modprobe loop modprobe squashfs modprobe ext4
Disk Bölümlendirme:
cfdisk /dev/sda
dos seçilmeli
type linux system seçilmeli
write yazılmalı
quit yapılmalı
Bu işlem sonucunda sadece /dev/sda1 bölümü olacaktır
Disk biçimlendirme:
$ mkfs.ext2 /dev/sda1
Dosya Sistemi Oluşturma:
mkfs.ext4 /dev/sda1
Kurulum Medyasını Bağlama ve Dosya Kopyalama:
mkdir -p /cdrom /kaynak
mount -t iso9660 -o loop /dev/sr0 /cdrom
mount -t squashfs -o loop /cdrom/live/filesystem.squashfs /kaynak
mkdir -p /hedef
mount /dev/sda1 /hedef
cp -prfv /kaynak/* /hedef
sync
Chroot Ortamına Geçiş ve GRUB Kurulumu:
for dir in /dev /sys /proc /run /tmp; do
mkdir -p /hedef/$dir
mount --bind /$dir /hedef/$dir
done
chroot /hedef
grub-install --boot-directory=/boot /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
2-UEFI Sistem Kurulumu¶
Hazırlıklar:
Disk işlemleri için evdev veya udevd servislerinin aktif olması gerekir.
Gerekli çekirdek modüllerini yükleyin:
modprobe loop modprobe squashfs modprobe ext4
Disk Bölümlendirme:
cfdisk /dev/sda
gpt seçin
512MB uefi alanı oluşturun (sda1)
Geri kalan alanı Linux system olarak ayarlayın (sda2)
Write ve ardından Quit
Bu işlem sonucunda sadece /dev/sda1 ve dev/sda2 bölümü oluşmalı.
Bölümleri biçimlendirme:
mkfs.vfat /dev/sda1
mkfs.ext4 /dev/sda2
Kurulum Medyasını Bağlama ve Dosya Kopyalama:
#--------------------------------------------------------------------------------------------------------------------
mkdir -p /cdrom /kaynak
mount -t iso9660 -o loop /dev/sr0 /cdrom
mount -t squashfs -o loop /cdrom/live/filesystem.squashfs /kaynak
mkdir -p /hedef
mkdir -p /hedef/boot/efi
mount /dev/sda2 /hedef
mount /dev/sda1 /hedef/boot/efi
cp -prfv /kaynak/* /hedef
sync
Chroot Ortamına Geçiş ve GRUB Kurulumu:
for dir in /dev /sys /proc /run /tmp; do
mkdir -p /hedef/$dir
mount --bind /$dir /hedef/$dir
done
chroot /hedef
mount -t efivarfs efivarfs /sys/firmware/efi/efivars
grub-install --removable --boot-directory=/boot --efi-directory=/boot --target=x86_64-efi /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
Kaynak:
- https://wiki.archlinux.org/title/GRUB_(T%C3%BCrk%C3%A7e)#UEFI_sistemler - 08/07/2025
- https://tldp.org/HOWTO/html_single/SquashFS-HOWTO/ - 09/07/2025
- https://askubuntu.com/questions/437880/extract-a-squashfs-to-an-existing-directory - 11/07/2025
- https://grok.com/share/c2hhcmQtMw%3D%3D_2ad2ac6b-d067-40b0-9b55-46db0c2c98dc - 10/07/2025