• Ubuntu 镜像打包


    Ubuntu 镜像打包

    下载对应版本的iso镜像(本文为lubuntu-18.04.1-desktop-amd64.iso),并且确认是否安装根文件系统解压缩及打包工具,没有则通过命令安装:

    (sudo) apt-get install squashfs-tools genisoimage

    1、  解压iso镜像文件

    (sudo) mkdir oldiso 

    (sudo) mount -o loop lubuntu-18.04.1-desktop-amd64.iso oldiso 

    (sudo) cp -rp oldiso newiso 

    (sudo) umount oldiso 

    2、  解压filesystem.squashfs文件

    (sudo) unsquashfs newiso/casper/filesystem.squashfs

    解压出来会生成squashfs-root目录,目录之下就是一个完整的系统文件结构

    (sudo) mv squashfs-root iso

    更改文件名,可有可无,只是为了后面敲的时候少敲一点

    3、  连接网络(如果在chroot中需要网络的话)  

    (sudo) cp /etc/resolv.conf iso/etc/

    (sudo) mount -o bind /run/ iso/run / 

    (sudo) cp /etc/hosts iso/etc/

    4、  设备的挂载exp

    (sudo) mount --bind /dev/ iso/dev

    (sudo) chroot iso

    mount -t proc none /proc

    mount -t sysfs none /sys

    mount -t devpts none /dev/pts

    此处需要注意一点,在iso镜像文件制作完成之后。如果需要删除iso文件,在删除之前需要解除这些挂载。不然的话会影响主机系统的正常使用,直到重启主机。

    5、  参数设置

    export HOME=/root

    export LC_ALL=C

    6、  更新软件源(可选)

    Ubuntu系统的软件源文件为/etc/apt/source.list

    mv /etc/apt/source.list /etc/apt/source.list_bak

    vi /etc/apt/source.list

    apt-get update

    7、  安装需要软件

    apt-get install xxx

    本次软件安装如下:

    apt-get install python-pyqt5

    apt-get install net-toolsapt apt-

    apt-get install openssh-server

    apt-get install virt-manager

    apt-get install qemu-kvm libvirt-bin bridge-utils

    手动安装方法:

    1.在主机系统之中,复制软件包:

    (sudo) cp xxx iso/var

    1. 进入iso系统

    (sudo) chroot iso

    1. 进入var,安装软件

    cd /var

    Xxxxxxxxx

    8、  根据需要修改系统配置(根据需要修改,以下修改只针对于虚拟机透传)

    在此次的iso制作之中的修改如下:

    vi /etc/modules

    在文件之后添加以下三行:

    vfio-pci

    vfio

    vfio_iommu_type1

    vi /etc/modprobe.d/kvm.conf

    添加:

    options kvm ignore_msrs=1

    options kvm allow_unsafe_assigned_interrupts=1

    options kvm_intel emulate_invalid_guest_state=0

    options vfio_iommu_type1 allow_unsafe_interrupts=1

    注意,在iso安装时动态生成的文本,这样的修改是不生效的。在系统安装的时候,文本将会直接被覆盖(如/boot/grub/grub.cfg)。

    10、卸载无用软件

    可以使用dpkg命令查看,搜索已安装软件,使用autoremove命令卸载无用软件。

    dpkg -l

    dpkg-query -W --showformat='${Installed-Size} ${Package} ' | sort -nr | less

    apt-get autoremove xxx

    为了系统的精简,可以将系统中无用软件一一删除。

    apt-get autoremove galculator abiword gnumeric xpad fcitx leafpad firefox sylpheed mtpaint simple-scan audacious guvcview xfburn system-config-printer

    11、清除安装包以及临时文件

    apt-get clean

    apt-get autoremove

    rm -rf /tmp/* ~/.bash_history

    rm /etc/resolv.conf

    rm /etc/hosts

    cd /var

    rm xxx

    12、删除挂载

    umount /proc

    umount /sys

    umount /dev/pts

    exit

    (sudo) umount iso/dev

    (sudo) umount iso/run 

    在umount /proc命令失败的情况之下,使用umount -lf /proc

    13、iso打包

    1)重新生成manifest及manifest-desktop文件:

    (sudo) chmod +w newiso/casper/filesystem.manifest

    (sudo) chroot iso dpkg-query -W --showformat='${Package} ${Version} ' > newiso/casper/filesystem.manifest

    (sudo) cp newiso/casper/filesystem.manifest newiso/casper/filesystem.manifest-desktop

    (sudo) sed -i '/ubiquity/d' newiso/casper/filesystem.manifest-desktop

    (sudo) sed -i '/casper/d' newiso/casper/filesystem.manifest-desktop

    2)压缩文件系统:

    (sudo) rm newiso/casper/filesystem.squashfs

    (sudo) mksquashfs iso newiso/casper/filesystem.squashfs

          

    (sudo) printf $(du -sx --block-size=1 iso | cut -f1) >newiso/casper/filesystem.size

    3)删除旧的md5sum.txt文件并计算新的md5码

    (sudo) cd newiso

    (sudo) rm md5sum.txt

    find -type f -print0 | (sudo) xargs -0 md5sum | grep -v isolinux/boot.cat | (sudo) tee md5sum.txt

    4)创建ISO

    (sudo) mkisofs -D -r -V "IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../my_lubuntu18.04.1-desktop-amd64.iso .

  • 相关阅读:
    深度卷积网络中如何进行上采样?
    权重衰减(weight decay), L2正则
    python中的super().__init__()
    随机变量的间独立性及其传播
    卡尔曼滤波、扩展卡尔曼滤波、无迹卡尔曼滤波以及粒子滤波原理
    贝叶斯推断中的后验概率、似然函数、先验概率以及边际似然定义(转)
    详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解(转)
    python告警发微信
    python模块operator操作符函数
    Django之CSRF验证。
  • 原文地址:https://www.cnblogs.com/52why/p/12363045.html
Copyright © 2020-2023  润新知