自定义LiveCD

 

目录

 

  1. 为什么要自定义LiveCD
  2. 如何自定义Ubuntu Desktop CD
  3. 系统要求
  4. 安装预先安排
  5. 获得基本系统
    1. 提取CD .iso内容
    2. 解压缩桌面系统
    3. 准备和chroot
  6. 自定义
    1. 易于
      1. 先决条件
      2. 任务
    2. GNOME的自定义背景
    3. 更改gconf值(字体,面板等)
      1. 进行几次gconf更改
    4. 设置区域默认值
      1. 传统启动
        1. 更改gfxboot的默认语言
        2. 更改默认键盘
      2. UEFI
    5. 自定义限制
    6. 杂项默认值
    7. 高级自定义
      1. Live CD Kernel
      2. 删除(Casper)自动登录
      3. 启动初始化
      4. 重建initrd
  7. 清理
  8. 制作CD图像
    1. 组装文件系统
    2. 测试CD
      1. 故障排除
    3. 将图像刻录到CD
  9. 图像的其他用途
  10. 注释

 

为什么要自定义LiveCD

您可能希望将Ubuntu Desktop LiveCd自定义为:

  • 制作自己的Linux / Ubuntu发行版
  • 炫耀一个特定的应用程序
  • 本地化为某种语言
  • 删除软件包
  • 添加软件包
  • 更新软件包
  • 更改系统默认值(主题,图标,桌面背景,面板,浏览器主页等)

 

如何自定义Ubuntu Desktop CD

创建自定义LiveCD的最简单方法是使用Ubuntu Customization Kit。以下是完成相同操作的手动方式。

IconsPage / warning.png本指南适用于Desktop LiveCd; 还有另一页涉及自定义安装Cd服务器安装Cd的自定义。此外,还提供了有关如何在不使用现有LiveCd的情况下创建LiveCd 的指南。

 

系统要求

  • 至少3-5 GB的可用空间
  • 至少512 MB RAM和1 GB交换(推荐)
  • 的squashfs工具

  • genisoimage,提供mkisofs

  • 支持squashfs的Ubuntu内核(存在于Ubuntu 6.06及更高版本中)

  • QEMU / KVM,VirtualBox或VMware进行测试(可选)

IconsPage / warning.png在9.04 Jaunty Jackalope(或更早版本)环境中自定义9.10 Karmic Koala(或更高版本)时,必须将squashfs-tools更新到4.0版。相反,Ubuntu 9.10中的squashfs-tools版本与早期版本的Ubuntu不兼容。

IconsPage / warning.png要存储在LiveCD上的体系结构(Amd64或i386)应与用于执行自定义的体系结构相同,否则LiveCD可能无法运行。例如,使用i386操作系统定制AMD64 LiveCD并非易事。

 

安装预先安排

  • 确保已安装所需的工具

 

sudo apt install squashfs-tools genisoimage

 

获得基本系统

注意:此处显示的示例使用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

 

提取CD .iso内容

安装桌面.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

 

准备和chroot

警告:如果在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包名

 

GNOME的自定义背景

通常,后台文件位于/ usr / share / backgrounds中。将png文件复制到那里,调整所有者和文件访问权限,然后编辑文件:

  1. /usr/share/gnome-background-properties/ubuntu-wallpapers.xml

  2. / 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值(字体,面板等)

要对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”

其中stringyourkeyyourvalue必须是要更改的类型,键和值...

 

进行几次gconf更改

通过分别设置每个值来编辑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

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用户(例如,casperubuntuuser)的默认值,因为该帐户是在引导时创建的。您可以直接编辑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身份进行这些更改。

 

高级自定义

 

Live CD Kernel

如果要进一步自定义引导过程,可以通过复制所需的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)。

 

删除(Casper)自动登录

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程序!

 

重建initrd

修改内核,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
  • 注意:如果“umount / proc”命令失败,将使用“umount -lf / proc”自动重试。

 

制作CD图像

 

组装文件系统

重新生成清单

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
  • 注意:-nolzma选项仅在Hardy中可用,并在Karmic中删除。此外,必须使用与您要自定义的CD上使用的内核兼容的mksquashfs版本生成squashfs。例如,你不能在karmic上生成一个jaunty squashfs,因为jaunty内核无法安装使用karmic的mksquashfs准备的squashfs。

对于压缩时间稍高的压缩,可以增加块大小:

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。

 

测试CD

使用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

 

将图像刻录到CD

简单!做就是了

 

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/

特征:

  • 用于简单创建本地化CD的GUI(包括更改gfxboot和安装语言包)
  • 用于在Live CD上自定义ISO,SquashFS和initrd的脚本。

 


http://www.atworkonline.it/~bibe/ubuntu/custom-livecd.htm似乎有一些不错的信息。没有我能看到的许可证,所以我们需要向作者许可我们的材料。

 


 

如果您想让CD启动更快,您可以尝试对文件进行排序,使它们按照访问顺序放入CD中:http//lichota.net/%7Ekrzysiek/projects/kubuntu/dapper-livecd-优化/

 


 

伟大的如何。但我有一个问题。我想使用自定义xorg.conf和sources.list文件。这样做的任何提示?谢谢。

  • 简单地说,将文件复制到/ etc /中,以同样的方式(同时)复制到resolv.conf和hosts文件中。
  • 我发现复制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':没有这样的文件或目录

请帮帮我

  • 我遇到了同样的问题,因为我正在处理的文件系统是FAT32而不是EXT2或EXT3。因此,我猜/ / bin / bash不是可执行文件。如果这也是你的情况,那么请再次尝试EXT2或EXT3(Linux类型的分区)的分区。祝你好运, --vvim

 


嗨,我已经创建了一个简单的脚本来轻松重新制作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'可以在以下包中找到:

  • 能力倾向
  • aptitude-gtk(你必须启用名为'universe'的组件)

尝试:apt install <selected package>

 


 

无法找到包含实时文件系统的介质(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?谢谢!

缺口 微笑:) (抱歉,如果我的问题听起来很愚蠢

 


 

嗨尼克:)
此链接可能有所帮助

但我会避免它。这不是愚蠢的,只是棘手的。

您可以通过备份/ home文件夹来备份所有设置,配置文件/文件夹和数据。您可以将/ home移动到新分区,以将数据(包括配置和内容)与操作系统分开。这允许您重新安装操作系统而不会弄乱任何东西

尽管不推荐,但是甚至可以让2个不同的操作系统共享相同的/ home。

提问的最好地方是

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值