Önyükleme Aygıtının Ayarlanması
Önceki Şifrelenmiş Kök Dosya Sistemi NASIL Sonraki
Önyükleme Aygıtının Ayarlanması
Ramdisk'in oluşturulması
Başlamak için, şifrelenmiş disk bölümüne hapsolmalı (chroot) ve önyükleme aygıtı için bağlama noktasını oluşturmalısınız:
# chroot /mnt/efs
# mkdir /loader
Ardından, daha sonra ihtiyacınız olacak başlangıç ramdisk'ini (initrd) oluşturun:
# cd
# dd if=/dev/zero of=initrd bs=1k count=4096
# mke2fs -F initrd
# mkdir ramdisk
# mount -o loop initrd ramdisk
grsecurity kullanıyorsanız "Permission denied" hatasını alabilirsiniz. Bu durumda mount komutunu kafesin (chroot) dışında çalıştırmanız gerekir.
Dosya sistemi ağacını oluşturun ve gerekli dosyaları içine kopyalayın:
# mkdir ramdisk/{bin,dev,lib,mnt,sbin}
# cp /bin/{bash,mount} ramdisk/bin/
# ln -s bash ramdisk/bin/sh
# mknod -m 600 ramdisk/dev/console c 5 1
# mknod -m 600 ramdisk/dev/hda2    b 3 2
# mknod -m 600 ramdisk/dev/loop0   b 7 0
# cp /lib/{ld-linux.so.2,libc.so.6,libdl.so.2} ramdisk/lib/
# cp /lib/{libncurses.so.5,libtermcap.so.2}    ramdisk/lib/
# cp /sbin/{losetup,pivot_root} ramdisk/sbin/
Eğer "/lib/libncurses.so.5: No such file or directory" veya "/lib/libtermcap.so.2: No such file or directory" hata iletileri ile karşılaşırsanız dert etmeyin; bash bu kütüphanelerden sadece birine ihtiyaç duyar. Gerçekte hangisinin gerekli olduğunu şöyle kontrol edebilirsiniz:
# ldd /bin/bash
Parolanızın çekirdek iletileri (usb aygıtlarının kaydedilmesi gibi) tarafından taşırılmasını önlemek için aşağıdaki sleep programını derleyin.
# cat > sleep.c << "EOF"
#include <unistd.h>
#include <stdlib.h>

int main( int argc, char *argv[] )
{
    if( argc == 2 )
        sleep( atoi( argv[1] ) );

    return( 0 );
}
EOF

# gcc -s sleep.c -o ramdisk/bin/sleep
# rm sleep.c
init betiğini oluşturun:
# cat > ramdisk/sbin/init << "EOF"
#!/bin/sh

/bin/sleep 3

echo -n "Enter seed value: "
read SEED

/sbin/losetup -e aes256 -S $SEED /dev/loop0 /dev/hda2
/bin/mount -r -n -t ext3 /dev/loop0 /mnt

while [ $? -ne 0 ]
do
    /sbin/losetup -d /dev/loop0
    /sbin/losetup -e aes256 -S $SEED /dev/loop0 /dev/hda2
    /bin/mount -r -n -t ext3 /dev/loop0 /mnt
done

cd /mnt
/sbin/pivot_root . loader
exec /usr/sbin/chroot . /sbin/init
EOF

# chmod 755 ramdisk/sbin/init
Geridönüş aygıtını dosya sesteminden ayırın ve initrd'yi sıkıştırın:
# umount -d ramdisk
# rmdir ramdisk
# gzip initrd
# mv initrd.gz /boot/
CD-ROM'dan önyükleme yapılması
Sisteminizi CD-ROM gibi salt okunur bir ortamı kullanarak yüklemenizi öneririm.
syslinux paketini indirin ve açın:
$ wget http://ftp.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.07.tar.bz2
$ tar -xvjf syslinux-3.07.tar.bz2
isolinux'u yapılandırın:
# mkdir bootcd
# cp /boot/{vmlinuz,initrd.gz} syslinux-3.07/isolinux.bin bootcd
# echo "DEFAULT /vmlinuz initrd=initrd.gz ro root=/dev/ram0" > bootcd/isolinux.cfg
Yüklenebilir cd-rom eşlemini oluşturun ve yakın:
# mkisofs -o bootcd.iso -b isolinux.bin -c boot.cat \
        -no-emul-boot -boot-load-size 4 -boot-info-table \
        -J -hide-rr-moved -R bootcd

# cdrecord -dev 0,0,0 -speed 4 -v bootcd.iso

# rm -rf bootcd{,.iso}
Sabit disk bölümünden önyükleme yapılması
Eğer yükleme cd'nizi kaybederseniz sabit disk bölümünüz yükleme yapabilmeniz için elinizin altındadır. Hda1 yazılabilir bir ortam olduğundan güvenilir olmadığını unutmayın ve ancak acil durumlarda kullanın!
Ext2 dosya sistemini oluşturun ve bağlayın:
# dd if=/dev/zero of=/dev/hda1 bs=8192
# mke2fs /dev/hda1
# mount /dev/hda1 /loader
Çekirdeği ve başlangıç ramdisk'ini kopyalayın:
# cp /boot/{vmlinuz,initrd.gz} /loader
grub kullanıyorsanız:
# mkdir /loader/boot
# cp -av /boot/grub /loader/boot/
# cat > /loader/boot/grub/menu.lst << EOF
default 0
timeout 10
color green/black light-green/black
title Linux
    root (hd0,0)
    kernel /vmlinuz ro root=/dev/ram0
    initrd /initrd.gz
EOF
# grub-install --root-directory=/loader /dev/hda
# umount /loader
lilo kullanıyorsanız:
# mkdir /loader/{boot,dev,etc}
# cp /boot/boot.b /loader/boot/
# mknod -m 600 /loader/dev/hda  b 3 0
# mknod -m 600 /loader/dev/hda1 b 3 1
# mknod -m 600 /loader/dev/hda2 b 3 2
# mknod -m 600 /loader/dev/hda3 b 3 3
# mknod -m 600 /loader/dev/hda4 b 3 4
# mknod -m 600 /loader/dev/ram0 b 1 0
# cat > /loader/etc/lilo.conf << EOF
lba32
boot=/dev/hda
prompt
timeout=60
image=/vmlinuz
    label=Linux
    initrd=/initrd.gz
    read-only
    root=/dev/ram0
EOF
# lilo -r /loader
# umount /loader
Önceki Üst Ana Başlık Sonraki
Şifrelenmiş Kök Dosya Sisteminin Oluşturulması Başlangıç Son Adımlar
Bir Linux Kitaplığı Sayfası