华为OpenEuler体验系列(02)--定制支持NTFS的微型Linux启动盘

上次已经制作了可以在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

上一篇:linux 无法识别NTFS格式的u盘


下一篇:RK3288系列嵌入式主板开发定制