華為OpenEuler體驗系列(02)--定製支援NTFS的微型Linux啟動盤

語言: CN / TW / HK

  上次已經制作了可以在bios和uefi下啟動的啟動盤,今天在這個基礎上新增一個支援ntfs微型linux定製的啟動u盤。
一、下載小型的linux:
http://www.tinycorelinux.net/downloads.html
http://www.tinycorelinux.net/11.x/x86_64/release/

二、定製ISO:
1、使用virtualBOX 載入並從ISO啟動。
2、將本地虛擬盤分割槽格式化:
 

    fdisk /dev/sda
    mkfs.ext3 /dev/sda1
    mkdir /mnt/sda1
    mount /dev/sda1 /mnt/sda1


3、建立目錄,並copy iso內容(/mnt/sr0)

    mkdir new_tiny    
    cp -r /mnt/sr0/* ./new_tiny/


4、處理corepure64.gz

    cd boot
    mv corepure64.gz corepure64.cpio.gz
    gunzip *.gz
    mkdir new_core
    cd new_core/
    cpio -i -F ../corepure64.cpio


5、安裝元件並處理快捷鍵:
    使用apps安裝ntfs exfat以及相關元件

    cp -fr /tmp/tcloop/fuse/* ./
    cp -fr /tmp/tcloop/exfat-utils/* ./
    cp -fr /tmp/tcloop/exfat-fuse/* ./
    cp /tmp/tcloop/exfat-fuse/usr/local/sbin/mount.extfat ./usr/local/sbin/
    cd sbin
    ln -sf ../usr/local/sbin/mkntfs ./mkfs.ntfs 
    ln -sf ../usr/local/bin/lowntfs-3g mount.lowntfs-3g
    ls -sf ../usr/local/bin/ntfs-3g mount.ntfs-3g
    ln -sf ../usr/local/bin/ntfs-3g mount.ntfs-3g
    cd ../usr/local/lib
    ln -sf ../../../lib/libntfs-3g.so.87.0.0 ./libntfs-3g.so


6、打包新的corepure64.gz
 

    cd /new_tiny/boot/new_core
    mv ../corepure64.cpio ../corepure64.cpio.bak
    find .|cpio -o -H newc > ../corepure64.cpio
    cd ..
    gzip -9 corepure64.cpio
    mv corepure64.cpio.gz corepure64.gz
    chmod a+x corepure64.gz
    rm *.bak
    rm -fr new_core


7、重新生成iso,兩種方法:
    (1)使用UltraISO將原包中的corepure64.gz替換為新的。
    (2)在boot上一級目錄

        mkisofs -r -V "HIS LINUX" -cache-inodes -J -l \
        -b boot/isolinux/isolinux.bin \
        -c boot/isolinux/boot.cat \
        -no-emul-boot -boot-load-size 4 \
        -boot-info-table -o "../hislinuxiso.iso"


三、製作啟動盤,配置檔案grub.cfg如下:

function load_video {
  insmod efi_gop
  insmod efi_uga
  insmod video_bochs
  insmod video_cirrus
  insmod all_video
}

load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2

search --no-floppy --set=root -l 'BOOT_DISK'

menuentry "Tinycore ISO --TC" {
    set isofile="/img_set/TinyCorePure64-current.iso"
    loopback loop $isofile
    linux (loop)/boot/vmlinuz64 loglevel=3 cde vga=791 video=vesafb:ywrap,mtrr:3 linux repo=hd:LABEL=BOOT_DISK:/
    initrd (loop)/boot/corepure64.gz
}

menuentry "Tinycore ISO --TCW" {
    set isofile="/img_set/TinyCorePure64-current.iso"
    loopback loop $isofile
    linux (loop)/boot/vmlinuz64 loglevel=3 cde waitusb=10 vga=791 video=vesafb:ywrap,mtrr:3 linux repo=hd:LABEL=BOOT_DISK:/
    initrd (loop)/boot/corepure64.gz
}

menuentry "Reboot" {
    reboot
}

參考:
https://blog.csdn.net/leo9150285/article/details/51163475?utm_source=blogxgwz9