如何制作定制的ubuntu镜像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何制作定制的ubuntu镜像相关的知识,希望对你有一定的参考价值。

ubuntu 10.04安装成功,为了运行一款软件,apt-get install 了很多lib,为了方便其他人安装使用我的系统,我想把我的系统制作成ISO镜像,这样他们就可以做个启动盘了,方便快捷。怎么做呢?新人一个,寻帮助,多谢!

具体操作如下:
一、从零开始构建Ubuntu-Server系统安装镜像
1)、Debian-installer--initrd.gz、vmlinuz和isolinux/的制作
Debian-installer是Debian的系统安装程序,ubuntu的server和alternate版都是使用Debian-installer作为系统安装程序。Debian-installer是一种字符界面的安装程序,可以对系统安装的软件包进行定制。
1、使用Debian-installer的ubuntu分支的源码
2、安装构建Debian-installer的依赖包:sudoapt-get build-dep debian-installer
3、创建debian-installer所需的源列表sources.list.udeb.local,构建debian-installer时会根据本机的sources.list生成所需的sources.list.udeb,可根据需要创建合适的sources.list.udeb.local来代替sources.list.udeb。
例,在debian-installer源码/build/下建立sources.list.udeb.local,其内容如下:
debcopy:/home/xin/work/version/debian-installer/build/ localudebs/
debhttp://archive.ubuntu.com/ubuntu raring main/debian-installer
debhttp://archive.ubuntu.com/ubuntu raring-securitymain/debian-installer
debhttp://archive.ubuntu.com/ubuntu raring-updates main/debian-installer
debhttp://archive.ubuntu.com/ubuntu raring-proposedmain/debian-installer
4、根据需要(光盘启动、硬盘启动和网络启动等)构建带有debian-installer的内核文件,例如:makebuild_cdrom_isolinux
结果将在dest/目录下生成如下文件:
├── cdrom
├──debian-cd_info.tar.gz
├── initrd.gz
└── vmlinuz
其中debian-cd_info.tar.gz内容为光盘启动所需的syslinux相关文件,也可供debian-cd使用自动生成光盘镜像。
5、定制:
config目录下修改给之文件可具体对内核等功能进行配置,具体有待根据实际需求进行分析。
2)、debootstrap&mksquashfs--filesystem.manifest,size,squashfs的制作
filesystem.squashfs是由debootstrap生成的ubuntu基础系统经过mksquashfs打包而成。
1、生成标准ubuntu基础系统:sudodebootstrap raring ./testfs
2、为安装系统时增加自定义的包集合菜单
3)、光盘引导--isolinux/的制作
isolinux/下为光盘引导的相关文件,可使用debian-installer生成的debian-cd_info.tar.gz提供的文件,也可使用自定义引导程序。
4)、自动化安装系统--preseed/的制作
preseed/下放置的是各种自动化安装系统的seed文件,可根据需要按照相关规则编写seed文件,ubuntuserver所使用的为ubuntu-server.seed。在引导参数中需指定seed文件。
5)、光盘中源的软件包--pool/的制作
pool/下是光盘中本地源的所有软件包,软件包按照源的标准文件结构放置。使用apt-move工具可将指定文件夹下的所有软件包按照源的标准文件结构放置,即可生成所需的pool目录。Apt-move是一个专为已下载到/var/cache/apt/archives的软件包生成debian软件包仓库文件结构的工具。光盘中所携带的所有软件包之间必须没有冲突并有完整的依赖关系,同时不能和debootstrap生成的基础系统中已安装的软件包有冲突。
6)、光盘中源的包列表--dists/的制作
dists/下是光盘中本地源的包列表,其中至少应包含两个包列表:1)光盘中所有供系统安装的.deb包的包列表(Packages),2)Debian-installer所需的.udeb包的包列表。
7)、光盘信息–.disk/目录
.disk/目录下为记录一些光盘属性的文件,此目录是制作镜像所必须的。debian-installer会读取其中信息以判断是否为ubuntu的系统安装盘。
8)、 simple-cdd--自动化构建ubuntu-server系统安装镜像
simple-cdd可以根据配置文件,利用Debian-installer和Debian-cd等工具自动构建ubuntu-server系统安装镜像。(由于这些软件默认配置都是针对Debian的,具体配置和使用还有待分析)
参考技术A ubuntu本身是不带lib依赖文件的,都是用deb包解决的,deb包的apt-get安装管理器能联网自动搜索安装依赖。ubuntu可用的lib数量是很多的,你不可能都这都镜像里,就算弄了出来它的大小会很惊人的。如果你想保留这版本,只能自己建立第三方软件源即ppa,但这不是一个人就可以做到的。追问

我并不是要镜像很多lib,只镜像我自己需要的lib,后期准备裁剪编译内核,因为我希望我的linux在低配置的PC上运行。另外,RTAI 好像也有问题,导致我的软件运行的时候只能运行模拟版。

本回答被提问者和网友采纳
参考技术B 不必iso. 只需要做成squashes 文件系统就可以。推荐UC loner. 参考技术C 是squashfs 不是squashes 参考技术D 我只想知道如何换内核

ubuntu镜像定制时的修改杂记

功能实现:

  1. 创建用户thinputer,将其设置为root权限。

adduser thinputer

vi /etc/sudoers

添加 thinputer ALL=(ALL:ALL) ALL

无需密码: thinputer ALL=(ALL)NOPASSWD:ALL

 

  1. 取消自动检测更新

apt-get autoremove gnome-software

apt-get autoremove software-properties-gtk

 

  1. 取消快捷键

find / -name rc.xml 

vi /usr/share/lubuntu/openbox/rc.xml

vi /etc/xdg/openbox/rc.xml

将文件<keyboard>标签之中的内容全部删除  中间每一个小标签都是一个快捷键

 

  1. 取消屏保

apt-get autoremove light-locker

 

  1. 自动登录

vi /etc/lxdm/default.conf

autologin=thinputer
 
vi /etc/lightdm/lightdm.conf 
[SeatDefaults]
autologin-user=thinputer
autologin-user-timeout=0
greeter-session=lightdm-gtk-greeter
user-session=Lubuntu
 
  1. 界面程序开机自启

vi /usr/share/applications/qt.desktop

[Desktop Entry]

Version=1.0

Name=thinputer

Exec=/etc/Login_01.py

StartupNotify=false

NoDisplay=true

Type=Application

Categories=System;Utility;Archiving;

cp /usr/share/applications/qt.desktop /etc/xdg/autostart/

 

  1. 后台脚本开机自启

vim /lib/systemd/system/rc.local.service

添加:

[Install] 

WantedBy=multi-user.target 

Alias=rc-local.service

 

vim /etc/rc.local

编写脚本:

#!/bin/sh -e

xxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxx

exit 0

 

chmod 755 /etc/rc.local

 

ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/

 

  1. 笔记本电源相关行为响应动作

/etc/systemd/logind.conf

主要包含以下事件:

HandlePowerKey:按下电源键

HandleSleepKey:按下挂起键

HandleHibernateKey: 按下休眠键

HandleLidSwitch:合上笔记本盖

HandleLidSwitchDocked:插上扩展坞或者连接外部显示器情况下合上笔记本盖子

取值可以是 ignore、poweroff、reboot、halt、suspend、hibernate、hybrid-sleep、lock 或 kexec。

poweroff和halt均是关机(具体实现有区别)

supspend是挂起(暂停),设备通电,内容保存在内存中

hybernate是休眠,设备断电(同关机状态),内容保存在硬盘中

hybrid-sleep是混合睡眠,设备通电,内容保存在硬盘和内存中

lock是锁屏

kexec是从当前正在运行的内核直接引导到一个新内核(多用于升级了内核的情况下)

ignore是忽略该动作,即不进行任何电源事件响应

 

  1. 关闭ubuntu错误日志上报提醒

0.删除现有错误日志

rm -rf /var/crash/*

1.卸载

service apport stop                                                   apt purge apport

  1. 修改

vi /etc/default/apport                                           enabled=0

 

esc退出界面

if event.key() == Qt.Key_Escape:

return

 

  1. grub的修改
vi /etc/default/grub
将GRUB_CMDLINE_LINUX_DEFAULT="quiet"
根据CPU类型:
改成GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
或者GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
 
vi /etc/modules
添加:
vfio 
vfio_iommu_type1 
vfio_pci 
vfio_virqfd
 
grub2-mkconfig(可能是grub-mkconfig)   
update-grub            
reboot
 
重启之后cat /proc/cmdline
查看是否存在 quiet intel_iommu=on
 
11. iso分区
修改newiso/isolinux/isolinux.cfg
确定preseed
修改newiso/preseed/lubuntu.seed
确定系统安装行为
 
12. 删除lubuntu的任务栏
apt autoremove lxpanel
13. 关闭黑屏
xset -dpms s off
xset s noblank
 
14. 关机太慢
vi /etv/systemd/system.conf
修改DefaultTimeoutStopSec=1s
 
15. ssh -X
vi /etc/ssh/sshd_config
#AllowAgentForwarding yes
AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
#PermitTTY yes
PrintMotd no
 
pyqt杂记:
self.setWindowFlags(Qt.WindowStaysOnTopHint)//窗口置顶
 

 

 

 

 

 

 

qemu虚拟机管理

  1. 创建

qemu-img create -f qcow2 winxp.img 10G

  1. 系统

qemu-system-x86_64 -hda  winxp.img  -cdrom  xp.iso  -boot d -m 512  -no-acpi -soundhw all

  1. 启动

qemu-system-x86_64 -hda  winxp.img  -boot d -m 512  -no-acpi -soundhw all

  1. virsh的vm管理

virsh reboot/start/shutdown/destroy/ vm_name

virsh create vm.xml

以上是关于如何制作定制的ubuntu镜像的主要内容,如果未能解决你的问题,请参考以下文章

RK3568开发笔记:在虚拟机上使用SDK编译制作ubootkernel和ubuntu镜像

定制CentOS系统制作ISO镜像

UltraISO软件怎么制作ubuntu系统U盘启动镜像

如何做ubuntu系统镜像

UltraISO软件怎么制作ubuntu系统U盘启动镜像

Ubuntu定制化系统ISO制作