我想通过安装一些额外的软件包来定制 Ubuntu Live CD。我已关注 Ubuntu 帮助 wiki 指南但似乎不起作用。有人能提供明确的说明吗?
我不太想使用 Remastersys;我更喜欢手动方式。
定制
我想要安装的软件包:
- 雷鸟
- 桑巴
- SSH
我需要的改变:
- 从应用程序菜单中删除游戏菜单
- 桌面上的 Firefox 快捷方式
- Radiance 作为默认主题
- 不同的默认 Ubuntu 壁纸
配置文件变更
- 我希望面板放在底部
- 我想粘贴我的 Samba 配置文件,而不是默认的 Samba 配置
- 我有几个 Firefox 快捷方式和文件夹,我想在桌面上显示它们
- 如果你能告诉我如何更改图标集就更好了
最近更新
- 我已经自定义了 Ubuntu 10.10,在桌面上添加了 Firefox 快捷方式和几个文件夹。一切顺利。但选择时区后安装程序崩溃了。我该如何解决这个问题?
- 设置壁纸也会影响登录屏幕。我设置的壁纸也会显示在登录屏幕上。我只想要登录屏幕的默认壁纸。
答案1
创建您自己的自定义 Live CD - 手动方式。
1. 准备工作
首先你下载实时 CD ISO。下载时安装重建所需的一些软件:
sudo apt-get install squashfs-tools schroot
壁球 是 Linux 的压缩只读文件系统。
施鲁特 允许用户在不同的 chroot 中执行命令或交互式 shell。
安装 Live CD:
mkdir /tmp/livecd sudo mount -o loop ~/Downloads/ubuntu-11.04-desktop-i386.iso /tmp/livecd
如果您使用其他 ISO 或其他位置进行下载,请进行相应调整。
创建一个工作区并将内容复制到工作区:
mkdir -p ~/livecd/cd rsync --exclude=/casper/filesystem.squashfs -a /tmp/livecd/ ~/livecd/cd mkdir ~/livecd/squashfs ~/livecd/custom sudo modprobe squashfs sudo mount -t squashfs -o loop /tmp/livecd/casper/filesystem.squashfs ~/livecd/squashfs/ sudo cp -a ~/livecd/squashfs/* ~/livecd/custom
如果在执行 modprobe 时收到如下错误:
sudo modprobe squashfs WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/
移动 modprobe.conf
mv /etc/modprobe.conf /etc/modprobe.conf.OLD
并重试!网络访问:
sudo cp /etc/resolv.conf /etc/hosts ~/livecd/custom/etc/
创建一个伪文件系统:
sudo chroot ~/livecd/custom /bin/bash -l mount -t proc none /proc/ mount -t sysfs none /sys/
2. 定制
你可以使用以下命令获取所有软件包的列表
dpkg-query -W --showformat='${Package}\n' | less
您可以使用以下方式删除游戏
apt-get remove --purge gnome-games
使用 更新你的源代码
sudoedit /etc/apt/sources.list
。注释掉你不需要的行,取消注释你想要的行,如果需要,添加 PPA,然后使用apt-get update && apt-get dist-upgrade
添加 thunderbird、Samba、Samba 系统配置和 SSH 等软件包的方式与通常从命令行安装的方式相同。因此
sudo apt-get install thunderbird samba system-config-samba ssh
将添加这些。如果你手动下载了该软件包,你可以使用以下命令安装它
sudo dpkg -i {file_name}.deb
- 您可以检查 Ubuntu 软件中心、Synaptic 或包裹网站如果需要安装更多内容,则显示名称。
- 您可能会考虑添加(无线)网络实用程序。
- 很快您将占用超过 800 Mb 的空间;如果这样,您要么删除更多软件包以将空间控制在 800 以下,要么在刻录时需要使用 DVD。如果不需要 libre office,删除它可以释放 33+ Mb 的空间。
要在桌面上创建 AskUbuntu 快捷方式:
mkdir -p /etc/skel/Desktop && printf '[Desktop Entry]\nVersion=1.0\nName=Ask Ubuntu\nComment=Ask Questions About Ubuntu\nGenericName=Question and Answers\nExec=xdg-open http://askubuntu.com\nTerminal=false\nX-MultipleArgs=false\nType=Application\nIcon=firefox\nCategories=Internet;\n' > /etc/skel/Desktop/askubuntu.desktop && chmod a+x /etc/skel/Desktop/askubuntu.desktop
您可以通过将 URL 编辑为其他内容来添加更多内容(跳过 mkdir 部分)。 由 dv3500ea 提供
更改 gconf-editor 内部的设置。
如果您知道该选项的路径和您想要的值(当然还有值的类型),您可以更改任何 gconf 选项。
更改壁纸是通过我指向箭头的路径完成的:
/desktop/gnome/background/
,它是一个字符串值,它用作picture_filename
选项。它当前在我的桌面上保存的值是/discworld2/Downloads/fantasticwall_2.jpg
。背景本身应该复制到/usr/share/backgrounds/
。确保设置权限和所有者。例子:
要将壁纸(将第一个命令中的文件名更改为您自己的图像)更改为此图像并将主题更改为 Radiance,您可以使用此信息创建命令来为您的实时 CD 设置它:
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --set -t string /desktop/gnome/background/picture_filename /discworld2/Downloads/fantasticwall_2.jpg gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --set -t string /desktop/gnome/interface/gtk_theme Radiance
由 dv3500ea 提供
启用远程桌面:
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --set -t bool /desktop/gnome/remote_access/enabled true
图标、面板等的设置都是通过添加这样的命令来完成的。
或者,您可以编辑
/etc/gconf/gconf.xml.defaults/%gconf-tree.xml
(或者当您关闭时保存此文件以供将来使用)。通过 gconftool-2 完成的所有配置设置都存储在此文件中。
更改 live cd 使用的默认时区
dpkg-reconfigure tzdata
将语言环境设置更改为英语(当然,将其更改为您想要的)
locale-gen en update-locale LANG=en LANGUAGE=en LC_ALL=en
配置配置文件。
如果您想要为某个特定的包定制一个配置文件,您可以通过多种方式来实现。
困难的(但最合乎逻辑的)方法是找到包,更改配置文件并重新打包,或者找到源文件,找出它们存储虚拟配置文件的位置并进行更改,然后重建包。
当然,这只有在源包中包含默认配置文件时才有效。许多包在 {packagename}.postinst 脚本中自动生成配置文件,因此完成此操作会相当困难。
最简单的方法是创建一个脚本并将当前配置复制到,
/etc/skel
以便将它们添加到您的桌面(类似于上面解释的添加 Firefox 快捷方式),安装后单击桌面链接将配置文件设置到所需的位置。成功安装后,脚本可以从您的桌面复制和删除脚本和配置文件。此方法可用于更新 Samba 配置(将当前配置放入/etc/skel/
。在其中放入具有执行权限并包含所述配置移动到的脚本,/etc/samba/smbd.conf
之后您需要做的就是执行该脚本)。这基本上总是有效的,因为它用安装后手动激活的脚本取代了安装后手动操作。但这也意味着它不是自定义 Live CD 的一部分。
3. 清理
apt-get clean
rm -rf /tmp/*
rm -f /etc/hosts /etc/resolv.conf
umount /proc/
umount /sys/
exit
这将删除所有临时文件;而不是我们创建的文件。~/livecd/
是只读的,因此常规操作rm
不会删除这些文件。您需要使用写访问权限来挂载它(或者像我一样使用新的 live cd 来启动和挂载主目录并rm
从那里挂载它。
4.设置 ISO
清单文件。
chmod +w ~/livecd/cd/casper/filesystem.manifest sudo chroot ~/livecd/custom dpkg-query -W --showformat='${Package} ${Version}\n' > ~/livecd/cd/casper/filesystem.manifest sudo cp ~/livecd/cd/casper/filesystem.manifest ~/livecd/cd/casper/filesystem.manifest-desktop
重新生成 squashfs 文件。
sudo mksquashfs ~/livecd/custom ~/livecd/cd/casper/filesystem.squashfs
更新 md5 总和。
sudo rm ~/livecd/cd/md5sum.txt sudo bash -c 'cd ~/livecd/cd && find . -type f -exec md5sum {} +' > md5sum.txt
5.创建 ISO。
cd ~/livecd/cd
sudo mkisofs -r -V "Ubuntu-Live" -b isolinux/isolinux.bin -c isolinux/boot.cat -cache-inodes -J -l -no-emul-boot -boot-load-size 4 -boot-info-table -o ~/Downloads/ubuntu-11.04-desktop-i386.iso .
6. 卸载并清理
sudo umount ~/livecd/squashfs/
sudo umount /tmp/livecd
sudo rm -fr ~/livecd/
7. 评论:
所有内容都使用 Ubuntu 11.04 Live CD 进行了测试。唯一出错的是 chrooting:我将 dchroot 添加到了需要安装的文件中以执行此操作。
关于“应该在桌面上创建一些 Firefox 快捷方式”、“应该将默认主题更改为 Radiance”和“应该更改默认 ubuntu 壁纸”。我在 dv3500ea 将其放入评论后编辑了这些内容;我在创建 11.04 live cd 时没有对此进行测试。
答案2
对于最新版本的 Ubuntu,请按照这个答案。
笔记:这Ubuntu Builder 项目已停止。
##使用 Ubuntu-Builder 创建带有 Gnome-Classic 的自定义 12.04 CD(目前,这特定于 Karthik 的需求;我稍后会用更通用/Unity 特定的东西更新答案)
###1. 获取 Ubuntu Builder 和源 ISO
Ubuntu 构建器自动执行许多必须手动完成的初步步骤(挂载 ISO、提取 squashfs、创建 chroot 等)。它还为您提供 Synaptic 和“图形”chroot(Unity UI)。
添加 PPA 来安装 Ubuntu Builder:
sudo add-apt-repository ppa:kamilion/ubuntu-builder
sudo apt-get update
sudo apt-get install ubuntu-builder
还请下载您计划使用的 Ubuntu 桌面 ISO。
###2. Ubuntu Builder 基础知识
从启动器启动 Ubuntu Builder。我建议您将所有三个字段都设置为“Ubuntu”(就像实际的 LiveCD 一样),因为设置自定义字段会导致软件中心崩溃。安装时,您可以像往常一样选择自己的用户名、机器名称等。
加载 ISO;我加载的是 64 位的本地磁盘选项,但是如果您愿意的话,Ubuntu Builder 应该能够下载 ISO。
右侧的按钮不言自明。
Console
为您提供 CLI chroot,而Desktop
为您提供图形一个!,即 LiveCD 会话本身(可能需要一段时间才能加载)。请注意,有时Select DE/WM
无法完成任务,因此最好通过以下方式安装apt-get/突触。
###3. 更新、添加 Gnome Classic 和其他包管理
笔记:如果您愿意的话,所有这些操作也可以通过 Synaptic 来完成。
- 您可以
sources.list
使用按钮(或通过控制台)编辑以添加您自己的镜像、ppas 等。
让我们从以下开始:
- 删除游戏
apt-get 删除 --purge aisleriot gnome-games-data gnomine mahjongg -y
- 进行常规更新和 dist-upgrade 到最新版本(可选,但建议这样做,因为您添加的 Gnome-classic 和其他软件包将是最新版本)-- 在 12.04 上,此步骤还会安装 Thunderbird 和核心 Samba 组件。它还将节省实际安装的时间。
apt-get 更新 && apt-get dist-upgrade
- 安装 Gnome Classic(
gnome-shell
用于引入指标等)、Samba 和 SSH:apt-get 安装 gnome-shell samba ssh
###4. 自定义 1:文件、配置和移除顶部面板
笔记:所有命令都必须从 Ubuntu Builder 的 chrooted 控制台运行除非另有说明(通常是从您自己的系统复制文件时)。 chroot 的绝对路径是
/home/ubuntu-builder/FileSystem
- 替换 Samba 配置文件(从您自己的系统终端,即 chroot 之外!)
sudo cp /path/to/mysmb.conf /home/ubuntu-builder/FileSystem/etc/samba/smb.conf
- 将 Firefox 快捷方式放在桌面上:
mkdir -p /etc/skel/桌面&& cd /etc/skel/桌面 cp /usr/share/applications/firefox.desktop 。 chmod +x firefox.desktop
将自定义快捷方式和文件夹复制到桌面(从 chroot 外部!)
sudo cp -r /path/to/mydesktopitems/ /home/ubuntu-builder/FileSystem/etc/skel/Desktop/
设置
gnome-classic
为默认 shell:
/usr/lib/lightdm/lightdm-set-defaults -s gnome-classic
- 移除顶部的 Gnome-Classic 面板并将顶部项目移至底部面板:
- 打开默认面板布局:
nano /usr/share/gnome-panel/panel-default-layout.layout
- 通过删除第 1-4 行来删除顶部面板:
[顶层顶部面板]
展开=真实方向=顶部尺寸=24
- 通过修改将“开始菜单”移至左下角粗体价值斜体参数如下:
[对象菜单栏] object-iid=PanelInternalFactory::MenuBar 顶层 ID=底部面板 包装索引=0
- 通过修改粗体价值斜体参数如下:
[对象指标] object-iid=IndicatorAppletCompleteFactory::IndicatorAppletComplete 顶层 ID=底部面板 包装类型=结束 包装索引=1
- 从左下角删除“显示桌面”按钮;我更喜欢将“开始菜单”放在那里的第一项,您可以保留它或将其移动到右下角等。删除以下行:
[对象显示桌面] 对象 iid=WnckletFactory::ShowDesktopApplet 顶层 id=底部面板 包索引=0
- 保存并退出。
###5. 自定义 2:背景和主题
注意:
/usr/share/glib-2.0/schemas
包含大多数默认背景/主题设置;我发现直接修改 LiveCD 中的这些设置比处理复杂的东西例如,只是为了防止登录屏幕背景与桌面背景相同。
- 禁用登录屏幕(lightdm)通过“复制”桌面背景和其他更改:
- 打开
nano /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml
- 如果您愿意,可以在此处更改默认登录背景:
<键名称="背景“类型=“s””> <默认>'/usr/share/backgrounds/warty-final-ubuntu.png'</默认>
- 通过将其设置为禁用“复制”桌面背景
false
:<键名称="绘制用户背景“类型=”b“> <默认>错误的</默认>
<键名称="主题名称“类型=”s“> <默认>'辐射'</默认>
- 更改默认壁纸;在这里,我们将其设置为随附的“系住我的船”(
/usr/share/backgrounds/Tie_My_Boat_by_Ray_García.jpg
):
打开
nano /usr/share/glib-2.0/schemas/10_gsettings-desktop-schemas.gschema.override
,并将以下行更改为您的文件路径:
picture-uri='file:///usr/share/backgrounds/warty-final-ubuntu.png'
- 将主题更改为辐射
- 打开 Ubuntu 的主题覆盖文件“nano /usr/share/glib-2.0/schemas/ubuntu-artwork.gschema.override”,并更改氛围以下辐射:
[org.gnome.desktop.interface] gtk 主题="氛围“... [org.gnome.desktop.wm.preferences] 主题=”氛围“
- 重要:编译修改后的模式!
- 现在我们已经完成自定义,请使用以下命令编译修改后的模式:
glib-编译-schemas /usr/share/glib-2.0/schemas
###6. 构建、测试和安装!
按下
Build
Ubuntu Builder 中的按钮开始构建自定义 Live-CD ISO。UB 会自动处理之前必须手动完成的清理等工作。ISO 可以在 中找到
/home/ubuntu-builder
;您可以使用内置 QEMU 或在另一个虚拟机中对其进行测试。我完成的 CD 大小为 778 MB(删除旧
.23
内核后),如果用户愿意,Unity 和 Gnome 3D 仍然可以使用,因此这对于定制来说非常好!:)
结果如下:
- 启动后,您会看到“尝试 Ubuntu”或“安装 Ubuntu”选项:
- 单击“尝试”即可获得我们的自定义桌面!
- 并且注销(使用 登录
ubuntu
,空白密码)显示登录壁纸保持默认:
- 选择时区后安装程序不会崩溃:
- 选择用户名等进行安装:
- 已安装的登录屏幕:
- 已安装的桌面:
答案3
从现有/新安装创建 Live CD
编辑:此方法似乎不再有效。我建议您尝试此 QA 中建议的其他方法。
一个好方法是从当前安装中制作一张 Live CD。这可以使用虚拟机来完成(只是不要在客户操作系统中安装任何 VM 工具)
因此,首先我们需要全新安装(如果您无法真正安装,请尝试使用虚拟机),仅安装您需要的东西(在您的情况下是 thunderbird、samba 和 ssh)。然后我们调整系统并记录调整的位置(例如,您更改桌面背景,设置位于 ~/.gconf 中,或者您添加 Firefox 快捷方式,它们位于 ~/Desktop 中)。这是第 4 步所需要的。
设置一些变量:
export WORK=~/temp export CD=~/livecd export FORMAT=squashfs export FS_DIR=casper
将 ~/temp 替换为我们将在其中工作的临时目录的路径。将 ~/livecd 替换为 CD 树的路径。
制作文件夹结构。
sudo mkdir -p ${CD}/{${FS_DIR},boot/grub} ${WORK}/rootfs
现在我们需要安装一些软件包:
sudo apt-get install grub2 xorriso squashfs-tools
现在我们将复制当前安装,修改排除标志以满足您的需要:
sudo rsync -av --one-file-system --exclude=/proc/* --exclude=/dev/* \ --exclude=/sys/* --exclude=/tmp/* --exclude=/home/* --exclude=/lost+found \ --exclude=/var/tmp/* --exclude=/boot/grub/* --exclude=/root/* \ --exclude=/var/mail/* --exclude=/var/spool/* --exclude=${WORK}/rootfs \ --exclude=/etc/fstab --exclude=/etc/mtab --exclude=/etc/hosts \ --exclude=/etc/timezone --exclude=/etc/shadow* --exclude=/etc/gshadow* \ --exclude=/etc/X11/xorg.conf* --exclude=/etc/gdm/custom.conf \ / ${WORK}/rootfs
如果您有单独的启动分区,请执行以下命令:
sudo cp -av /boot/* ${WORK}/rootfs/boot
在您的例子中,您需要从主目录复制设置和一些文件。首先,定义我们要复制的目录: CONFIG='.config .gconf Desktop someotherfolder andanotherfolder' 现在我们复制它:cd ~ && for i in $CONFIG do sudo cp -rpv --parents $i ${WORK}/rootfs/etc/skel done
现在我们chroot到新的系统并进行修改。
sudo mount --bind /dev/ ${WORK}/rootfs/dev sudo mount -t proc proc ${WORK}/rootfs/proc sudo mount -t sysfs sysfs ${WORK}/rootfs/sys sudo mount -t devpts devpts ${WORK}/rootfs/dev/pts sudo chroot ${WORK}/rootfs /bin/bash
以下命令在 chroot 中完成:
LANG= apt-get update apt-get install casper
Casper 包含实时脚本。如果您还需要安装程序,请运行以下命令:
apt-get install ubiquity ubiquity-frontend-gtk
或者如果你想要 KDE:
apt-get install ubiquity ubiquity-frontend-kde
更新 modules.dep 和 initramfs:
depmod -a $(uname -r) update-initramfs -u -k $(uname -r)
删除非系统用户 - 不用担心,我们已将设置和数据复制到用户“骨架”中。这意味着所有新用户都将拥有它们。
for i in `cat /etc/passwd | awk -F":" '{print $1}'` do uid=`cat /etc/passwd | grep "^${i}:" | awk -F":" '{print $3}'` [ "$uid" -gt "999" -a "$uid" -ne "65534" ] && userdel --force ${i} 2>/dev/null done
清理:
apt-get clean find /var/log -regex '.*?[0-9].*?' -exec rm -v {} \; find /var/log -type f | while read file do cat /dev/null | tee $file done rm /etc/resolv.conf /etc/hostname
退出 chroot。
exit
现在,我们复制内核:
export kversion=`cd ${WORK}/rootfs/boot && ls -1 vmlinuz-* | tail -1 | sed 's@vmlinuz-@@'` sudo cp -vp ${WORK}/rootfs/boot/vmlinuz-${kversion} ${CD}/boot/vmlinuz sudo cp -vp ${WORK}/rootfs/boot/initrd.img-${kversion} ${CD}/boot/initrd.img sudo cp -vp ${WORK}/rootfs/boot/memtest86+.bin ${CD}/boot
如果你已经安装了安装程序,则需要执行此操作,以便安装程序不会安装诸如 casper 之类的东西:
sudo chroot ${WORK}/rootfs dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee ${CD}/${FS_DIR}/filesystem.manifest sudo cp -v ${CD}/${FS_DIR}/filesystem.manifest{,-desktop} REMOVE='ubiquity casper user-setup os-prober libdebian-installer4' for i in $REMOVE do sudo sed -i "/${i}/d" ${CD}/${FS_DIR}/filesystem.manifest-desktop done
卸载我们已经安装的内容:
sudo umount ${WORK}/rootfs/proc sudo umount ${WORK}/rootfs/sys sudo umount ${WORK}/rootfs/dev/pts sudo umount ${WORK}/rootfs/dev
转换为 squashfs:
sudo mksquashfs ${WORK}/rootfs ${CD}/${FS_DIR}/filesystem.${FORMAT}
制作文件系统.大小:
echo -n $(sudo du -s --block-size=1 ${WORK}/rootfs | tail -1 | awk '{print $1}') | sudo tee ${CD}/casper/filesystem.size
和 md5:
find ${CD} -type f -print0 | xargs -0 md5sum | sed "s@${CD}@.@" | grep -v md5sum.txt |sudo tee ${CD}/md5sum.txt
现在 grub.cfg:
sudo nano ${CD}/boot/grub/grub.cfg
(用你喜欢的文本编辑器替换 nano,没关系)粘贴并保存:
set default="0" set timeout=10 menuentry "Ubuntu GUI" { linux /boot/vmlinuz boot=casper quiet splash initrd /boot/initrd.img } menuentry "Ubuntu in safe mode" { linux /boot/vmlinuz boot=casper xforcevesa quiet splash initrd /boot/initrd.img } menuentry "Ubuntu CLI" { linux /boot/vmlinuz boot=casper textonly quiet splash initrd /boot/initrd.img } menuentry "Ubuntu GUI persistent mode" { linux /boot/vmlinuz boot=casper boot=casper persistent quiet splash initrd /boot/initrd.img } menuentry "Ubuntu GUI from RAM" { linux /boot/vmlinuz boot=casper nopersistent toram quiet splash initrd /boot/initrd.img } menuentry "Check Disk for Defects" { linux /boot/vmlinuz boot=casper integrity-check quiet splash initrd /boot/initrd.img } menuentry "Memory Test" { linux16 /boot/memtest86+.bin } menuentry "Boot from the first hard disk" { set root=(hd0) chainloader +1 }
如果您愿意,您可以添加额外的菜单项,这样您就可以直接跳转到 Ubiquity。
menuentry "Install Ubuntu" { linux /boot/vmlinuz boot=casper only-ubiquity quiet splash initrd /boot/initrd.img }
制作 CD/DVD!
sudo grub-mkrescue -o ~/live-cd.iso ${CD}
使用虚拟机测试一下!
所有荣誉都归于 capink,因为指南来自这里。
答案4
它是一组脚本,可以更轻松地从现有 .iso 映像创建自定义 LiveCD。它与 Remastersys 非常相似,不同之处在于它得到了积极维护。它有一个 GUI 来帮助进行自定义,但也可以使用命令行来执行相同操作。
- 它将要求选择要包含在 CD 中的语言包。
- 然后,它会要求选择 .iso 映像文件,该文件将用作新 CD 的基础。
- 为将要创建的新 .iso 映像命名。
- 然后,它会询问要从 LiveCD 添加/删除的软件包。它会为您提供命令行和默认 GUI(Ubuntu 软件中心)之间的选项。注意:您应该选择命令行。从命令行,您可以使用 apt-get 或使用 Ubuntu 软件中心(从命令行输入 software-center)添加/删除软件包。您还可以修改所有软件/应用程序的配置设置。
- 完成后(可能需要一些时间来下载所需的软件包),继续。
- 现在,只需坐下来放松一下。过一会儿,您的自定义 LiveCD 就准备好了。