码迷,mamicode.com
首页 > 系统相关 > 详细

Ubuntu 镜像打包

时间:2020-02-25 19:41:58      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:source   安装软件   find   so文件   镜像   asp   var   openssh   tool   

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}\n‘ | 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}\n‘ > 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 .

Ubuntu 镜像打包

标签:source   安装软件   find   so文件   镜像   asp   var   openssh   tool   

原文地址:https://www.cnblogs.com/52why/p/12363045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!