目录
|
您可能希望将Ubuntu Desktop LiveCd自定义为:
创建自定义LiveCD的最简单方法是使用Ubuntu Customization Kit。以下是完成相同操作的手动方式。
本指南适用于Desktop LiveCd; 还有另一页涉及自定义安装Cd和服务器安装Cd的自定义。此外,还提供了有关如何在不使用现有LiveCd的情况下创建LiveCd 的指南。
的squashfs工具
genisoimage,提供mkisofs
支持squashfs的Ubuntu内核(存在于Ubuntu 6.06及更高版本中)
QEMU / KVM,VirtualBox或VMware进行测试(可选)
在9.04 Jaunty Jackalope(或更早版本)环境中自定义9.10 Karmic Koala(或更高版本)时,必须将squashfs-tools更新到4.0版。相反,Ubuntu 9.10中的squashfs-tools版本与早期版本的Ubuntu不兼容。
要存储在LiveCD上的体系结构(Amd64或i386)应与用于执行自定义的体系结构相同,否则LiveCD可能无法运行。例如,使用i386操作系统定制AMD64 LiveCD并非易事。
sudo apt install squashfs-tools genisoimage
从http://releases.ubuntu.com/下载官方桌面CD
注意:此处显示的示例使用ubuntu-9.04-desktop-i386.iso桌面CD。将其替换为iso的名称。例如,如果您有一个ubuntu-11.04-desktop-i386.iso映像,则命令为:
mv ubuntu-9.04-desktop-i386.iso~ / livecdtmp
将改为:
mv ubuntu-11.04-desktop-i386.iso~ / livecdtmp
mkdir~ / livecdtmp
mv ubuntu-9.04-desktop-i386.iso~ / livecdtmp
cd~ / livecdtmp
安装桌面.iso
mkdir mnt
sudo mount -o loop ubuntu-9.04-desktop-i386.iso mnt
将.iso内容解压缩到dir'extract-cd'
mkdir extract-cd
sudo rsync --exclude = / casper / filesystem.squashfs -a mnt / extract-cd
解压缩SquashFS文件系统
sudo unsquashfs mnt / casper / filesystem.squashfs
sudo mv squashfs-root edit
警告:如果在14.04 LTS中执行此操作,则将丢失网络连接(名称解析部分)。/etc/resolv.conf现在应该仍然是/run/resolvconf/resolv.conf的符号链接。要启用名称解析,请改为临时编辑该文件。如果您需要chroot内的网络连接
sudo cp /etc/resolv.conf编辑/ etc /
在更新的版本中,您可以通过仅绑定/运行来避免此问题,这会将主机的resolvconf信息提取到chroot中:
sudo mount -o bind / run / edit / run
注意:建议您不要这样做,除非您知道自己在做什么根据您的配置,您可能还需要复制hosts文件
sudo cp / etc / hosts编辑/ etc /
剩下的步骤很好,与上面的步骤不同:
sudo mount --bind / dev / edit / dev
sudo chroot编辑
mount -t proc none / proc
mount -t sysfs none / sys
mount -t devpts none / dev / pts
(这些安装主机系统的重要目录 - 如果您以后决定删除编辑/目录,请确保在执行此操作之前卸载,否则主机系统将至少暂时无法使用,直到重新启动)
避免区域设置问题以及导入GPG密钥
export HOME = / root
导出LC_ALL = C.
在9.10中,在安装或升级软件包之前,您需要运行
dbus-uuidgen> / var / lib / dbus / machine-id
和
dpkg-divert --local --rename --add / sbin / initctl
ln -s / bin / true / sbin / initctl
按大小查看已安装的包
dpkg-query -W --showformat ='$ {Installed-Size} \ t $ {Package} \ n'| sort -nr | 减
如果要删除包,请记得使用清除
aptitude purge包名
通常,后台文件位于/ usr / share / backgrounds中。将png文件复制到那里,调整所有者和文件访问权限,然后编辑文件:
/usr/share/gnome-background-properties/ubuntu-wallpapers.xml和
/ usr / share / gconf / defaults / 16_ubuntu-wallpapers或同一目录中的其他文件。通过更改字符串/usr/share/backgrounds/warty-final-ubuntu.png指向您的文件
最终将属性更改或添加到其他配置文件,例如:/var/lib/gconf/debian.defaults/%gconf-tree.xml或/etc/gconf/gconf.xml.defaults/%gconf-tree.xml)。
历史:更多适合小巧玲珑......
要对gconf属性进行任何更改,必须在文件/etc/gconf/gconf.xml.defaults/%gconf-tree.xml中添加所需的值。在该文件中添加值将更改Gnome或其他应用程序的默认值,因此您可以更改字体,背景,主题,游标等。
您可以使用groto-2在chroot环境下运行以下行,而不是使用gedit或其他文本编辑器编辑文件:
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set yourkey“yourvalue”
其中string,yourkey和yourvalue必须是要更改的类型,键和值...
通过分别设置每个值来编辑gconf需要花费太多时间。有一个更好的方法:
制作测试用户并根据需要调整设置。跑
gconftool-2 --dump / / settings / branch / you / need>〜/ live / your-new-settings.xml
sudo chown root:root~ / live / your-new-settings.xml
sudo mv~ / live / your-new-settings.xml~ / live / edit / your-new-settings.xml
然后,在chroot环境中,运行
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --load /your-new-settings.xml
rm /your-new-settings.xml
这样您就可以导入整个分支,例如/ apps / panel - Gnome面板的所有设置。请注意,这样您不仅可以导入键,还可以导入其描述,因此所有GConf描述都将更改为为测试用户设置的语言,并且无法安全地将其更改回来。某些程序(例如,“首选项”菜单中的键盘快捷键)使用GConf中的说明。
更改gfxboot的默认语言
这种定制必须在chroot之外完成。
sudo aptitude安装dpkg-dev uck
apt source gfxboot-theme-ubuntu gfxboot
cd gfxboot-theme-ubuntu * /
make DEFAULT_LANG = fi
sudo cp -af boot / * ../extract-cd/isolinux/
将“fi”更改为您首选的区域设置。请注意,这不会更改F2菜单中可用的语言。有关gfxboot自定义的更多信息,请参阅Ubuntu自定义工具包。
另一种在不重建包的情况下更改gfxboot的默认语言的方法是在isolinux目录中创建包含您的语言环境名称的文件名lang。
更改默认键盘
在12.04中,更改实时启动的默认键盘并不像以前在10.04及更早版本那样明显。例如,如果要将默认语言保留为英语但将默认键盘设置为“GB”,则必须编辑文件/usr/lib/ubiquity/ubiquity/misc.py。如果你看一下620线附近的硬编码默认值表,它应该是相当明显的...
//在/usr/lib/ubiquity/ubiquity/misc.py第620行:
default_keymap = {
'ar':'ara',
'bs':'ba',
'de':'de',
'el':'gr',
'en':'我们',
等等...
您可以通过编辑此表来查看默认语言的默认键映射,但请记住,如果更新图像上的ubiquity包,则任何更改都将被破坏。
另请注意,这仅适用于X.要设置控制台键盘:
dpkg-reconfigure键盘配置
UEFI引导使用GRUB而不是gfxboot。更改实时会话的语言或键盘没有选项,因此默认情况下都是英语。因此需要修改GRUB配置。在Ubuntu Finnish Remix脚本中,完成如下:
sed -i'6i loadfont /boot/grub/fonts/unicode.pf2'boot / grub / grub.cfg
sed -i'7i set locale_dir = $ prefix / locale'boot / grub / grub.cfg
sed -i'8i set lang = fi_FI'boot / grub / grub.cfg
sed -i'91i insmod gettext'boot / grub / grub.cfg
sed -i的%splash%splash locale = fi_FI console-setup / layoutcode = fi%'
boot / grub目录/的grub.cfg
sed -i's /尝试Ubuntu而不安装/ Kokeile Ubuntua asentamatta /'
boot / grub目录/的grub.cfg
sed -i's /安装Ubuntu / Asenna Ubuntu /'boot / grub / grub.cfg
sed -i / OEM安装(制造商)/ OEM-asennus
(laitevalmistajille)/'boot / grub / grub.cfg
sed -i's /检查光盘是否有缺陷/ Tarkista asennusmedian eheys /'
boot / grub目录/的grub.cfg
mkdir -p boot / grub / locale /
mkdir -p boot / grub / fonts /
cp -a /boot/grub/locale/fi.mo boot / grub / locale /
cp -a /boot/grub/fonts/unicode.pf2 boot / grub / fonts /
自定义后,确保没有UID == 999的用户。否则您的映像将无法启动,因为没有初始用户可用(请参阅/ usr / share / initramfs-tools / scripts / casper-bottom / 25adduser, - > 'db_set passwd / user-uid 999')。例如,安装后可能会发生这种情况 VirtualBox虚拟/ GuestAdditions
在chroot中:
awk -F:'$ 3 == 999'/ etc / passwd
如果你有任何命中,请尝试更改uid:
usermod -u 500 $ hit
您可能希望编辑/ etc / default中的文件以在启动时更改系统行为。您还可以编辑/ etc / profile,/ etc / bash.bashrc和/ etc / bash_completion以更改系统上所有用户的登录设置。您无法直接编辑live cd用户(例如,casper,ubuntu或user)的默认值,因为该帐户是在引导时创建的。您可以直接编辑root的默认文件(/ chroot环境中的/ root)。
如果要更改live cd使用的默认时区,请运行:
dpkg-reconfigure tzdata
如果您已添加区域设置并希望将其设置为默认区域,请更新/ etc / default / locale。您可能必须编译区域设置:
locale-gen new_locale
update-locale LANG = new_locale LANGUAGE = new_locale LC_ALL = new_locale
必须在chroot环境中以root身份进行这些更改。
如果要进一步自定义引导过程,可以通过复制所需的vmlinuz和initrd来代替在extract-cd / casper中找到的内核来更改livecd内核。
即
sudo cp edit / boot / vmlinuz-2.6.15-26-k7 extract-cd / casper / vmlinuz
sudo cp edit / boot / initrd.img-2.6.15-26-k7 extract-cd / casper / initrd.gz
请注意,较新版本的初始ramdisk文件名(自9.10起)是casper / initrd.lz(不是.gz)。
Jaunty / 9.04 live CD的自动登录功能有点像是一个动态的启动黑客。 解压缩initrd.gz后,需要编辑casper-bottom / 25configure_init 脚本然后重新创建initrd.gz文件,替换extract-cd / casper中的原始文件。 这样做的过程如下:
#cd extract-cd / casper
#mkdir tempdir
#cd tempdir
#gunzip -dc ../initrd.gz | cpio -imvd --no-absolute-filenames
#cp scripts / casper-bottom / 25configure_init scripts / casper-bottom / 25configure_init.orig
#vi script / casper-bottom / 25configure_init
现在查找第25行,其中包含用于测试$ USERNAME的条件语句。
第25行执行条件评估,如果评估为真,它将执行 执行if块中的代码。if块包含要修改的代码在启动过程中使用的文件来创建live cd autologin。
要禁用自动登录功能,请删除$ USERNAME,但只需保留引号即可。 -n修饰符测试$ USERNAME字符串以查看其长度是否为非零。 通过删除变量,并留下两个双引号,此语句将进行求值 为false,因为两个双引号有效地产生一个零字节字符串。 请确保在引号之间不留空格,因为空格会有空格 评估为真,执行将落入if块。
21:log_begin_msg“$ DESCRIPTION”
22:
23:#在虚拟控制台上安排shell,而不是登录提示
24:
25:if [-n“$ USERNAME”]; 然后
进行更改后,第25行将如下所示:
25:if [-n“”]; 然后
保存文件并退出编辑器。然后,从extract-cd / casper / tempdir运行以下命令重新创建initrd.gz文件。还有其他方法在此页面上重新创建initrd.gz文件,该文件也可以使用:
#cp ../initrd.gz ../initrd.gz.orig
# 找 。| cpio -o -H newc | gzip -9> ../initrd.gz
这将创建一个没有自动登录的新initrd.gz文件。然后你可以继续按照本页所述重新制作CD。在重新管理CD之前,请务必创建用户和密码以登录。如果不这样做,您将无法在启动后登录!
另外,我读过一些文章,提到Karmic(9.10)使用的是initrd.lz initrd.gz。我不知道这是否属实,但如果你是的话,应该提一下没有得到预期的结果。要解压缩initrd.lz文件,您需要执行以下操作:
#cd extract-cd / casper
#mkdir lztempdir
#cd lztempdir
#lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames
并重新创建initrd.lz文件:
#cp ../initrd.lz ../inird.lz.orig
# 找 。| cpio --quiet --dereference -o -H newc | lzma -7> ../initrd.lz
你必须编辑/ usr / share / initramfs-tools / scripts / casper-bottom / *中的文件 例如,您可以更改主机名或livecd用户。
即
sudo nano edit / usr / share / initramfs-tools / scripts / casper
并编辑用户名或主机名
sudo nano edit / usr / share / initramfs-tools / scripts / casper-bottom / 10adduser
甚至可以编辑livecd用户的密码。
如果您要自定义10.04,则需要在/etc/casper.conf中为用户名和主机名编辑变量,而不是修改脚本
PS为了获得加密密码,你必须使用whois包附带的mkpasswd程序!
修改内核,init脚本或添加新内核模块后,需要重建initrd.gz文件并将其替换为casper目录。
sudo chroot编辑
mkinitramfs -o /initrd.gz 2.6.15-26-k7
(将内核版本替换为CD将引导的版本 - 可以在edit / lib / modules中找到) ***我需要在chroot之后挂载proc,sys,devpts吗?戈登
退出chroot jail并将此文件移至extract-cd / casper:
出口
mv edit / initrd.gz extract-cd / casper /
请务必删除不再需要的任何临时文件,因为CD上的空间有限。一个典型的例子是下载的包文件,可以使用以下方法清除:
能力清洁
或者删除临时文件
rm -rf / tmp / *〜/ .bash_history
注意:可能不需要删除,以后可能会导致网络问题 或删除主机文件
rm / etc / hosts
警告:请参阅前面关于resolv.conf的说明,不要再在14.04 LTS中删除它,甚至不要在12.04 LTS中删除它。 或者名称服务器设置
rm /etc/resolv.conf
如果您安装了软件,请务必运行
rm / var / lib / dbus / machine-id
和
rm / sbin / initctl
dpkg-divert --rename --remove / sbin / initctl
来自chroot环境。
现在卸载(卸载)特殊文件系统并退出chroot
umount / proc || umount -lf / proc
umount / sys
umount / dev / pts
出口
sudo umount edit / dev
重新生成清单
chmod + w extract-cd / casper / filesystem.manifest
sudo su
chroot edit dpkg-query -W --showformat ='$ {Package} $ {Version} \ n'> extract-cd / casper / filesystem.manifest
出口
sudo cp extract-cd / casper / filesystem.manifest extract-cd / casper / filesystem.manifest-desktop
sudo sed -i'/ ubiquity / d'extract-cd / casper / filesystem.manifest-desktop
sudo sed -i'/ casper / d'extract-cd / casper / filesystem.manifest-desktop
压缩文件系统
sudo rm extract-cd / casper / filesystem.squashfs
sudo mksquashfs编辑extract-cd / casper / filesystem.squashfs -nolzma
对于压缩时间稍高的压缩,可以增加块大小:
sudo mksquashfs编辑extract-cd / casper / filesystem.squashfs -b 1048576
为了以压缩时间为代价进行尽可能高的压缩,您可以使用xz方法和 最好完全排除edit / boot目录:
sudo mksquashfs编辑extract-cd / casper / filesystem.squashfs -comp xz -e edit / boot
更新安装程序所需的filesystem.size文件:
sudo su
printf $(du -sx --block-size = 1 edit | cut -f1)> extract-cd / casper / filesystem.size
出口
在extract-cd / README.diskdefines中设置图像名称
sudo vim extract-cd / README.diskdefines
(如果您对vim有困难,可以使用“sudo nano extract-cd / README.diskdefines”)
删除旧的md5sum.txt并计算新的md5总和
cd extract-cd
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux / boot.cat | sudo tee md5sum.txt
创建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 ../ubuntu-9.04.1-desktop-i386-custom.iso。
使用qemu模拟器测试
qemu -cdrom ubuntu-9.04.1-desktop-i386-custom.iso -boot d -m 512
或者如果你有kvm的硬件加速
kvm -cdrom ubuntu-9.04.1-desktop-i386-custom.iso -boot d -m 512
您还可以使用virtualbox-ose进行测试,该软件是Ubuntu Universe存储库中的免费软件。
有些人在更改livecd linux内核后虚拟化iso会遇到问题。如果这样做,请在显示引导屏幕时单击F6。在splash quiet和 - 之间移动光标并写入:all_generic_ide
简单!做就是了
cdrecord dev = / dev / cdrom ubuntu-9.04-desktop-i386-custom.iso
从USB记忆棒安装Ubuntu
从硬盘驱动器上加载的映像安装
如果您有任何意见或问题,请随时在此处添加。
如果您正在回答问题,请将问题重写为回答问题的提示。(以帮助保持重点。)
底部的新问题(我想。)
我通过添加firebird2.1-superand flamerobin软件包创建了一个小的定制示例(名为Firebird Live CD)(这适用于ubuntu Hardy Heron,它也是用xubuntu 8.04测试的) http://flamerobin.blogspot.com/2008/08/creating-flamerobinfirebird-livecd-with.html
警告:qemu对我不起作用,如上面的指南所示。即使是普通的8.04 live cd也无法正常启动。每次,我都会被扔进灰壳(busybox,initramfs),而在那里,“cat /casper.log”会显示它“无法找到包含实时文件系统的媒体”。只需使用virtualbox-ose。它实际上适用于virtualbox。但是,在使用apt安装virtualbox-ose后,我不得不再次运行“sudo depmod”,以便modprobe找到vboxdrv模块。希望有所帮助!
- rocketman768
警告:Squashfs目前正在开发中,因此未最终确定为格式。这意味着您不能假设使用Ubuntu 9.04版本的makequashfs创建的filesystem.squashfs将与squashfs驱动器兼容较旧的Live CD。我正在定制一个Ubuntu 7.10 LiveCD,当测试它总是启动它(initramfs)提示 - squashfs没有被挂载为/。我必须在Ubuntu 7.10 chroot内构建才能使它工作。
--Bob /保罗
我通过添加firebird-super-server和flamerobin包创建了一个小的定制示例(名为Firebird Live CD)(这适用于ubuntu dapper drake)http://flamerobin.blogspot.com/2006/05/creating-flamerobinfirebird-live-cd.html 我用Ubuntu Festy Fawn创建了一个更新的指南,还有一个用于Firebird / Flamerobin live cd的iso下载 http://flamerobin.blogspot.com/2007/09/creating-flamerobinfirebird-livecd-with.html
我已经创建了自动重新制作动态CD图像的工具。见http://uck.sourceforge.net/。
特征:
http://www.atworkonline.it/~bibe/ubuntu/custom-livecd.htm似乎有一些不错的信息。没有我能看到的许可证,所以我们需要向作者许可我们的材料。
如果您想让CD启动更快,您可以尝试对文件进行排序,使它们按照访问顺序放入CD中:http://lichota.net/%7Ekrzysiek/projects/kubuntu/dapper-livecd-优化/
伟大的如何。但我有一个问题。我想使用自定义xorg.conf和sources.list文件。这样做的任何提示?谢谢。
我发现复制xorg.conf不起作用,因为启动时脚本会覆盖它。此外,您无法保证特定的xorg.conf将在所有主机上运行。如果有NVIDIA显卡,我现在正试图让二进制NVIDIA驱动程序开箱即用。如果我弄清楚如何修复xorg.conf,我会在这里发布。- JeremyVisser
我已经设法从chroot环境中运行Synaptic,但是当我尝试应用软件包时它确实会挂起。 你做的是运行“Xnest -ac:1”让Xnest服务器在显示器上运行:1没有访问控制,所以任何人都可以连接到它。然后,在chroot环境中,运行“export DISPLAY =:1”以获取程序以使用显示。然后,键入“metacity&”以便能够移动窗口。最后,运行“突触”。
它工作正常,直到你尝试应用包,它挂在我身上。- JeremyVisser
mkinitramfs命令不应该使用casper脚本,例如“mkinitramfs -o initrd.gz 2.6.15-23-386 -d / usr / share / initramfs-tools”?
有关如何在chroot环境中感受GNOME系统的技巧。
1.将xorg.conf复制到chrooted“etc / X11 /”目录中。
cp /etc/X11/xorg.conf编辑/ etc / X11 /
2.使用MAKEDEV在chroot系统上创建通用设备
cd / dev /
MAKEDEV通用
3.启动X或重新启动gdm
/etc/init.d/gdm start
假设您要在桌面上进行修改,将由所有新用户使用, 只需将$ HOME更改为/ etc / skel /并启动gdm或X.
export HOME = / etc / skel /
如果你想加载GNOME需要的所有其他东西(即dbus,avahi,network-manager), 只需启动(单用户模式),然后在chrooted环境中启动dbus。
/etc/init.d/dbus start
整个过程的一个例子。(在单用户模式下)
sudo /etc/init.d/networking restart
sudo nano /run/resolvconf/resolv.conf#请参阅本页前面有关resolv.conf的说明。暂时添加,例如。名称服务器8.8.8.8,但不要以任何方式触及/etc/resolv.conf
sudo cp /etc/X11/xorg.conf编辑/ etc / X11 /
sudo chroot编辑
mount -o none / proc
mount -o none / sys
export HOME = / etc / skel /
cd / dev /
MAKEDEV通用
/etc/init.d/dbus start
/etc/init.d/gdm start
--- joelbryan
你好,
我即将建立一个新的Livecd并有一个问题: 当我更改用户名,主机名和用户密码时,用户在启动生命系统时会自动登录。但这不是理想的。是否正确,当我在/ usr / share / initramfs-tools / scripts / casper-bottom / 10adduser中删除加密密码时,我必须在Desktop LiveCD下输入密码?
谢谢
更改用户名和密码不会改变登录行为,因为这是在/ usr / share / initramfs-tools / scripts / casper-bottom / 15autologin中完成的
--- Alexander Hosfeld
无法从chroot jail中启动MySQL服务器。有什么建议么?
- 戴夫
嘿,
我正在尝试制作一个完全预配置的Kubuntu 6.06自定义live cd,这样当用户点击KDE上的安装图标时,安装程序应该自行完成所有操作,这意味着安装程序不应向用户提出任何问题。
为此,我尝试编写一个preseed文件,告诉安装程序它需要的信息。
问题是,即使使用这个预置文件,我只能告诉安装程序它应该使用的用户名是什么,安装程序会忽略其余的信息。
我必须做错事,并感谢给予我的任何和所有帮助。
谢谢, Komyg
PS:我应该在这里发布我的preseed文件吗?
如果livecd不会用于安装哪些文件可以被删除?包含.debs的“池”文件也可以删除吗?
- 迈克
如果我想放入不在sources.list中的LiveCD应用程序(如ooffice 2.2或perl音频转换器),我会做什么?
- Isoldanne
当您在chroot中时,您可以像在实时系统上一样安装应用程序。如果您从源代码安装,您可以随意删除源tarbal并在执行'make install'后创建文件夹。
- 鲍勃/保罗
要获得所需的/etc/X11/xorg.conf,可以修改/ usr / bin / dexconf。该脚本在liveCD会话中自动生成xorg.conf 根据启动的机器。
例如:
#diff~ / bin / dexconf / usr / bin / dexconf
268,269c268
<选项“XkbLayout”“我们,il”
<选项“XkbOptions”“grp:alt_shift_toggle,grp_led:scroll”
---
>选项“XkbLayout”“$ XKB_LAYOUT”
- yotam
我不能做chroot。当我运行它时得到这个错误
chroot:无法运行命令`/ bin / bash':没有这样的文件或目录
请帮帮我
嗨,我已经创建了一个简单的脚本来轻松重新制作Kubuntu Live CD。它使用aufs来避免来回复制所有文件。
也许它对其他人也有用。该脚本必须以root身份运行。
CD =“$ {1:-kubuntu-9.04-desktop-i386.iso}”; 转移
退出任何错误后退出:
设置-e
哪个mkisofs mksquashfs tempfile sed
WDIR =`mktemp -d $ PWD / kubuntu-remastered.XXXXXXXXXX`
ISO = “$ WDIR / $ {CD ## * /}”
ISO = “$ {ISO%的.iso} -remastered-KDM.iso”
EXIT = “”
function addExit {
EXIT =“$ @; $ EXIT”
陷阱“$ EXIT”EXIT HUP TERM INT QUIT
}
function mnt {
当地的margs =“1美元”; 转移
本地mp =“$ WDIR / $ 1”
对于“$ @”中的D; 做
mkdir -v -p“$ WDIR / $ D”
DONE
mount -v $ margs“$ mp”
addExit“umount -v $ mp”
}
#挂载CD映像
mnt“-t auto $ CD -o loop,ro”cd
#mount压缩文件系统
mnt“-t squashfs $ WDIR / cd / casper / filesystem.squashfs -o ro,loop”sq
#为新CD创建连接的可写文件系统
mnt“-t aufs -o br:$ WDIR / cd-w = rw:$ WDIR / cd = ro none”cd-u cd-w
#为新压缩的squashfs文件系统创建连接的可写文件系统
mnt“-t aufs -o br:$ WDIR / sq-w = rw:$ WDIR / sq = ro none”sq-u sq-w
echo“>>>更新CD内容”
(
cd sq-u
#在这里做你的定制工作,改造,修改文件,等等。
#...
#...
)
echo“>>>压缩文件系统”
mksquashfs $ WDIR / sq -u / $ WDIR / cd -u / casper / filesystem.squashfs -noappend
echo“>>>重新计算MD5总和”
(cd $ WDIR / cd-u && find.-type f -not -name md5sum.txt -not -path'* / isolinux / *' - print0 | xargs -0 - md5sum> md5sum.txt)
echo“>>>创建ISO映像$ ISO”
mkisofs \
-V“自定义KUbuntu Live CD”
-r -cache-inodes -J -l \
-b isolinux / isolinux.bin \
-c isolinux / boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-o“$ ISO”\
$ WDIR / CD-U
#陷阱...回调将卸载所有内容。
--- Petr Pudlak
彼得 - 这看起来很有趣。你如何使用它?当我运行它时,我得到./fix-live-cd.sh:1:shift:不能移动那么多。- 杰夫
我需要知道如何配置live cd以便它不使用SWAP!
请帮帮我!
- 冰人
嗨,我一直遇到aptitude的问题,我很确定它,因为我在NTFS分区上做了所有这些事情(根据这个帖子http://ubuntuforums.org/showthread.php?t=521905)。但我别无选择,因为我的ext3分区上的内存不到17GB。有什么建议吗?谢谢
在尝试安装或更新aptitude时我收到的错误消息:
“E:无法制作25165824字节的mmap - mmap(19没有这样的设备) W:无法发布 E:无法解析或打开包列表或状态文件。“
-heethen(heethen at centrum dot cz)
我建议在你的NTFS分区中创建一个ext3文件系统。要创建文件,请键入
dd if = / dev / zero of = / mnt / hda1 / workspace.img bs = 1024 count = $((1024 * 1024 * 15))
我假设您的NTFS分区在hda1上,并且您想调用新的文件系统workspace.img(它实际上只是NTFS中的文件),并且您希望15Gb的空间可以工作。(你不需要那么多,但是15Gb你应该有足够的空间。)然后使用该命令格式化新文件系统
sudo /sbin/mkfs.ext3 /mnt/hda1/workspace.img
然后创建一个挂载点
sudo mkdir / mnt / workspace
然后挂载新的文件系统
sudo mount -o loop /mnt/hda1/workspace.img / mnt / workspace
然后,您可以根据需要在NTFS分区上使用尽可能多的空间,并享受ext3的所有好处(例如让***工作正常)。 --Tom
通过分别设置每个值来编辑gconf需要花费太多时间。有一个更好的方法:
制作测试用户并根据需要调整设置。跑
gconftool-2 --dump / / settings / branch / you / need>〜/ live / your-new-settings.xml
sudo chown root:root~ / live / your-new-settings.xml
sudo mv~ / live / your-new-settings.xml~ / live / edit / your-new-settings.xml
然后,在chroot环境中,运行
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --load /your-new-settings.xml
rm /your-new-settings.xml
这样您就可以导入整个分支,例如/ apps / panel - Gnome面板的所有设置。
---雅各布波波夫 Ubuntu的9.04的桌面-i386.iso
是否无法将用户的gconf值复制到chrooted环境中的默认gconf值?这比编写命令容易得多。
我花了很长时间才找到在Live CD上配置静态IP的详细信息,而无需在根文件系统中执行此操作。这使您可以创建一些具有不同静态详细信息和DHCP的引导选项,但所有引导选项都来自相同的rootfs。
有一个casper参数,其形式如下:
IP = IFACE,地址,子网掩码,网关[:IFACE,地址,子网掩码,网关] *
--silid
http://ubuntuforums.org/showthread.php?t=839670
我想我已经发现了如何做到这一点:
1)相应地编辑/ usr / share / initramfs-tools / scripts / casper-bottom / 23networking
2)运行update-initramfs -u -k $ version
- 罗伯特
为了让livecd从/ etc / network / interfaces文件中的静态地址启动。
我编辑/ etc / network / interfaces文件并为接口eth0添加一个静态地址。
自动eth0
iface eth0 inet static
地址10.xxx.xxx.xxx
网络掩码255.255.255.0
网关10.xxx.xxx.1
编辑somepath / isolinux / text.cfg 启动后添加ip = frommedia
标签直播
菜单标签^尝试Ubuntu而不对您的计算机进行任何更改
kernel / casper / vmlinuz
append file = / cdrom / preseed / ubuntu.seed boot = casper initrd = / casper / initrd.gz quiet splash ip = frommedia -
这有点难找。谢谢罗伯特Nicholas A. Schembi 匹兹堡PA美国
我已经尝试安装adobe flash player但是它在chroot上安装得很好,然后在从CD启动时显示为已安装。Firefox认为它没有安装,我需要手动安装它。任何人都遇到了类似的问题
我尝试通过安装RT内核来自定义Ubuntu Hardy并按照howto中的说明进行了更改...它很顺利,但在vbox中启动非常慢。可能是什么原因?我尝试了再一次,也在另一个vbox安装,但仍然是那个问题。如果有人能指出我的解决方案会很好!提前致谢另见主题:http://ubuntuforums.org/showthread.php?p = 7334890#post7334890 编辑:我认为它与RT内核(来自Hardy)的事实有关...有经验添加自定义RT内核的人吗?
我写了一个脚本来自动化提取/ chroot /再生过程:http://david.decotigny.fr/wiki/wakka.php?wiki = RemasterUbuntu。它已在jaunty x86_64主机上进行了测试,以获得轻松的i386 CD映像。
- DavidDecotigny
要将默认用户置于“视频”组中,
printf“\ nADD_EXTRA_GROUPS = 1 \ nEXTRA_GROUPS =”video“\ n”>> /etc/adduser.conf
- CarlKarsten
为了在Karmic之前的任何版本中编辑Karmic LiveCD,看起来你需要升级squashfs-tools来支持SquashFS v4.0:
root @ maxwell:/ home / Z_Custom #unsquashfs mnt / casper / filesystem.squashfs
mnt / casper / filesystem.squashfs上的文件系统是(4:0),这是我支持的后来的文件系统版本!
我将Karmic版本中的squashfs-tools_4.0-1安装到我的Intrepid安装中,现在似乎没问题了。也许我们应该更新这些指示以反映这一点?
此致
- 约翰·佐洛
嗨..如何添加安装后脚本?我的意思是,我想在安装过程之后执行一个脚本。这个脚本很简单,并设置了一些东西来自定义安装。
有任何想法吗?
最好的祝福
- 亚历杭德罗
你好,我正在尝试重新管理ubuntu 9.10 livecd。我正在按照本页的说明操作。当我尝试从自定义系统启动时,我似乎无法登录系统,因此我无法运行系统。
我正在遵循关于用户ID的限制部分的指示。并确保没有任何用户拥有超过999的uid。但是,在制作squashfs文件系统后,我收到一条消息,告诉我有关uid 1000的用户。实际上我的主机系统有一个用户使用uid 1000.我正在使用这个用户重新管理ubuntu livecd。
我用于重新制作livecd的uid(1000)是否使新的live cd无法登录? 如果确实如此,如何解决? 我必须使用uid少于999的其他用户重新管理livecd吗?
最好的祝福
asw_te
您好,有什么最好的方法来重新控制Karmic发布LiveCD(在VirtualBox中)以包含所有最新更新(超过150个),包括新内核和udev?内核从2.6.31-14变为2.6.31-16以及udev。
apt autoremove删除旧的头文件,但我必须手动清除旧内核(apt purge linux-image-2.6.31-14-generic)。
第一个问题是,update-initramfs -u -k所有仍然运行旧内核。只有aptitude重新安装udev似乎停止了这个(depmod -a && dpkg --configure -a && dpkg-reconfigure udev没有帮助)。
第二个问题是,如何准备initrd和isolinux从子目录运行和安装(创建多启动DVD)? DVD的基础是Ubuntu,所以/包含ubuntu-9.10-desktop-i386.iso,/ kubuntu包含kubuntu-9.10-desktop-i386.iso等等。当我向scripts / casper和/isolinux/text.cfg引入前缀时,大多数事情运行正常:
LIVE_MEDIA_PATH =卡斯帕
$ PATH / .disk /卡斯帕的UUID
append file = / cdrom / preseed / kubuntu.seed boot = casper initrd = / casper / initrd.lz quiet splash -
变
LIVE_MEDIA_PATH =的kubuntu /卡斯帕
$ PATH / Kubuntu的/ .disk /卡斯帕的UUID
append file = / cdrom / kubuntu / preseed / kubuntu.seed boot = casper initrd = / kubuntu / casper / initrd.lz quiet splash -
但是前缀发行版在桌面上只显示了一个Install Ubuntu 9.10链接,而不是Kubuntu(Xubuntu,LUbuntu,...)。
谢谢,RenéLeonhardt
嗨!
我希望能够重新管理Ubuntu Live光盘,以便我可以将它粘贴到几乎任何计算机上,让它启动但不进入GUI,只需自动登录并运行带有争议的媒体播放器(如流地址) 。希望能够制作我自己的简易互联网广播设备。向企业提供带有声卡的旧奔腾电脑,他们可以免费在他们的PA上播放我的电台!
- 马特
我使用aptitude with update,dist-upgrade,purge linux-image-2.6.31-14-generic,安装zsh zsh-doc,安装ubuntu-restricted-extras,并启用了DVD,更新了Karmic Live CD和chroot内部的最新更新回放。
生成的iso文件比CD大,我把它放在USB磁盘上。系统启动正常,具有最新的更新,并可以开箱即用限制格式。我旅行时,我只能携带USB磁盘而不是电脑!
包括Ubuntu 9.10 Karmic Koala在内的所有版本现在都有更新的内核。Live CD *中的内核必须与squashfs中的内核匹配。如果没有,则会出现奇怪的问题(例如无法检测到无线接口或无法识别CD)
即对于Karmic
sudo cp edit / boot / vmlinuz-2.6.31-16-generic extract-cd / casper / vmlinuz
sudo cp edit / boot / initrd.img-2.6.31-16-generic extract-cd / casper / initrd.gz
由于Karmic使用initrd.lz,我必须解压缩.gz文件并将其放回.lz格式。
cd extract-cd / casper
sudo mv initrd.lz inird.lz.orig
gzip -dc initrd.gz | sudo lzma -7> initrd.lz
cd~ / live
为了节省空间,可以在更改目录之前删除原始initrd文件
sudo rm -f inird.lz.orig initrd.gz
最好, Pradeep Sekar
我有几个问题, 我正在为社区学校计划重新制作9.04的副本 我遇到了一些问题
#1如何在更新管理器中删除更新为9.10的选项 #2你如何在ubiquity安装程序中将CD作为命名的发行版而不是ubuntu 9.04进行识别(当我重新安装softare时仍然说它是ubuntu 9.04 cd) #3如何安装新的内核到live cd和安装部分,我能够将它升级到28.18但是当我尝试将31放在它上面时......它就不会启动了。
#4我有一个repos服务器,我编辑sources.list但是ubuntu repos仍然是主要的,我如何改变它?
#5最后,我拿出了gnome游戏,我想添加一个eduacational游戏列表,但我希望它作为可选安装。(有些计算机赢得了那里的游戏儿子)有没有办法添加/.Games文件夹而不会在其中有任何数据?我尝试在chroot adn根菜单中执行此操作,但它仍未显示在安装中...
谢谢
ashlessburn
任何人都可以告诉我如何在启动时选择安装Live CD。我只是希望他们能够使用它,而不是安装。
谢谢
--Steve
您可以在extract-cd / isolinux / text.cfg中编辑引导选项 删除您不喜欢的标签的所有行和子行: 例如,您可以删除:
标签live-install
菜单标签^安装Ubuntu
kernel / casper / vmlinuz
追加文件= / cdro ...
- jancelis
要删除自动登录,请让我们在extract-cd目录中工作。这是否意味着这个过程必须是最后一个?在编辑目录上进行所有修改后,我们是否必须这样做?我们是否必须首先在chroot中创建新用户?谢谢 --lsga
我无法正确添加存储库。你如何在现场CD中添加一个?--Muscovy
嗨,我正在使用Ubuntu Lucid 10.04处理一张无意义的安装CD,我发现如果你擦除/ sbin / initctl,则自动安装不会运行。使用dpkg-divert生成initctl的指令也不起作用。所以要小心......
亚历杭德罗
我自定义live cd并安装apache2,webmin ,,,但是如何让它在自动登录后启动?
戈登
我使用的是一个不会自动启动图形系统的Ubuntu版本(startx命令)如何添加它以便在启动时运行?
RJ
鉴于10.10已经出来,我目前正在进行一项小的更新。不幸的是,我被耽搁了,现在时间已经不多了。主要是我想让脚本更加复制/粘贴友好。所以我添加了一些env变量并在整个脚本中使用它们。我已经完成了替换,但我没有做一些测试。
在此期间,我会将当前版本转储到上面的链接中以保存我的工作。
exhuma
aptitude无法清除包裹。
程序'aptitude'可以在以下包中找到:
尝试:apt install
无法找到包含实时文件系统的介质(SOLUTION)
从Windows(Vista / 7)创建带有Unetbootin的live-usb时,有时会出现此错误。 我的一位朋友提出了另一种解决方案,而不是上述所有方案 使用Unetbootin从Linux(Ubuntu)框而不是Windows系统创建USB记忆棒。显然两者之间有所不同,因为现在我的系统刚刚完美无缺!
SantanaNL
关于“无法找到包含实时文件系统的媒体” -
尝试使用USB记忆棒在上网本上安装Ubuntu 10.04,10.10和10.10上网本版时,我遇到了同样的问题。我尝试使用10.10的启动盘创建器,11.04的启动盘创建器,11.04的Unetbootin和Windows 7的Unetbootin创建所有三个。在所有情况下,我都能够进入usb启动菜单并选择“安装” ”。Ubuntu徽标会显示它正在处理一段时间,然后在终端中失败并显示上述消息。
最后,iso或创建的USB记忆棒不是问题。USB驱动器刚刚没有安装(或者在我告诉它完成'安装'程序之后将被卸载。由于我无法弄清楚如何从提供的终端启动USB,我只是尝试删除并重新插入USB驱动器一旦我看到Ubuntu徽标和进度blip。
到目前为止,我已经能够通过这个解决方案两次解决这个问题。
bananax182
对于你们所有人来说,半新人可能并不像知识渊博的Ubuntu用户那样,就像我自己一样,Live CD环境并没有使用所有典型的存储库,就像你安装它一样。您可能需要添加感兴趣的特定存储库以安装Live CD的程序。
例如,我想创建一个带有dcfldd的live CD。我必须在chrooted环境中编辑etc / apt / sources.list以添加Universe存储库。我将以下内容取消注释到etc / apt / sources.list中的行以安装dcfldd:
deb http://archive.ubuntu.com/ubuntu natty universe
deb-src http://archive.ubuntu.com/ubuntu natty universe
然后只是更新apt并正常安装:
apt更新
apt install dcfldd
对不起,如果大家都已经知道了 我只是认为它可能对像我这样的用户有所帮助。
mrgrant
嗨, 我相信人们会感谢你的评论,例如你的MrGrant。否则,人们可能会觉得他们是唯一一个患有某种东西的人,或者可能觉得他们应该受到责备。
在普通的LiveCd上有一个“安装程序”图标。有谁知道我如何将这个图标放到普通的Ubuntu桌面上?我已经完成了对大型usb-stick的完整安装,并安装了诸如“GPartEd”之类的东西,但我肯定会想念havign的安装程序图标和功能。来自汤姆的问候
我希望更新或查看本指南的更新,该更新针对统一的自定义启动器。所以这个想法是,一旦桌面和团结解决了碎片,我可以点击自定义启动器,而不是看着破折号找到它。这个消息应该被这个信息取代,以防其他人打败我。
乍得
我是初学者。如何将当前的计算机配置转换为安装CD?谢谢!
缺口 (抱歉,如果我的问题听起来很愚蠢
嗨尼克:)
此链接可能有所帮助
https://help.ubuntu.com/community/LiveCDCustomizationFromScratch
但我会避免它。这不是愚蠢的,只是棘手的。
您可以通过备份/ home文件夹来备份所有设置,配置文件/文件夹和数据。您可以将/ home移动到新分区,以将数据(包括配置和内容)与操作系统分开。这允许您重新安装操作系统而不会弄乱任何东西
https://help.ubuntu.com/community/Partitioning/Home/Moving
尽管不推荐,但是甚至可以让2个不同的操作系统共享相同的/ home。
提问的最好地方是
http://www.linuxquestions.org
http://www.ubuntuforums.com