如何自定义Ubuntu Live CD?


205

我想通过安装一些其他软件包来自定义Ubuntu live CD。我已经遵循 了,但是似乎没有用。谁能提供清晰的说明?

注意:我不喜欢Remastersys,将不胜感激。

客制化

我要安装的软件包:

  • 雷鸟
  • 桑巴舞
  • SSH协议

我需要的更改:

  • 从应用程序菜单中删除游戏菜单
  • 桌面上的Firefox快捷方式
  • 发光作为默认主题
  • 不同的默认Ubuntu壁纸

配置文件更改

  • 我想将面板放在底部
  • 我想粘贴我的Samba配置文件而不是默认的Samba配置
  • 我想在桌面上显示一些Firefox快捷方式和文件夹
  • 如果您说我如何更改图标集,那也很好

最近更新

  • 我使用Firefox快捷方式和台式机上的几个文件夹自定义了Ubuntu 10.10。一切顺利。但是,安装程序在选择时区后会崩溃。我该如何解决这个问题?

  • 同时设置墙纸会影响登录屏幕。我设置的墙纸也显示在登录屏幕上。我只想要默认的登录屏幕。


您是否要使用Unity更新12.04,还是希望使用Gnome-Shell / Classic?
ish 2012年

2
添加了答案,使用Ubuntu Builder整体上更简单的方法:)请让我知道评论中的任何反馈等。
ish 2012年

1
@mniess“您将如何重新掌握14.04或更高版本?” izx和我发布的手册版本对于设置要编辑的根系统仍然有效。新的答案高度依赖于了解“给定的最新更改”的含义。每次更改都会有特定的方法(编辑dconf或编辑conf文件),所有这些都已包含在当前答案中。它不是一件事就是“复制/粘贴”;这些新变化要求有人思考的内容超出了书面内容。但是我相信答案也已经需要这个。
Rinzwind 2014年

1
第二个:askubuntu.com/questions/409607/…是使用服务器ISO和kickstart文件的较新版本。也适用于桌面ISO。
Rinzwind 2014年

请注意,对于主题程序等的自定义设置,最有可能需要对相应的软件包而不是已安装的文件进行。然后设置一个新的版本号将意味着您的更改不应被更新覆盖(尽管您可能希望/需要经常更新这些软件包以适应新的版本)
Wilf 2015年

Answers:


116

注:Ubuntu的Builder项目已经停产

使用Ubuntu-Builder用Gnome-Classic创建自定义的12.04 CD

(目前,这是针对Karthik的需求的;我稍后将使用更一般/针对Unity的内容更新答案)

1.获取Ubuntu Builder和您的源ISO

Ubuntu Builder可以自动执行许多必须手动完成的初步步骤(挂载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给您一个图形化的 chroot ,即LiveCD会话本身(此过程可能需要一段时间才能加载)。请注意,Select DE/WM有时会执行不完整的工作,因此最好通过apt-get / Synaptic 安装。

3.更新,添加Gnome Classic和其他软件包管理

注意:如果您对此感到满意,也可以通过Synaptic完成所有这些操作。

  • 您可以sources.list使用按钮(或通过控制台)进行编辑,以添加自己的镜像,ppas等。

让我们开始:

  • 删除游戏
    apt-get remove --purge aisleriot gnome-games-data gnomine mahjongg -y
  • 进行一般更新并将其dist升级到最新版本(可选,但建议您这样做,因为您添加的Gnome-classic和其他软件包将是最新版本)-在12.04上,此步骤还安装了Thunderbird和核心Samba组件。它还将节省实际安装时间。
    apt-get更新&& apt-dist升级
  • 安装Gnome Classic(gnome-shell用于插入指示器等),Samba和SSH:
    apt-get安装gnome-shell samba ssh

4.定制1:文件,配置和删除顶面板

注意:除非另有说明(通常是从您自己的系统复制文件时),否则所有命令都必须从Ubuntu Builder的chroot控制台运行。chroot的绝对路径是/home/ubuntu-builder/FileSystem

  1. 替换Samba配置文件(从您自己的系统终端,即chroot之外!)

    须藤cp /path/to/mysmb.conf /home/ubuntu-builder/FileSystem/etc/samba/smb.conf
  2. 将Firefox快捷方式放在桌面上:

    mkdir -p / etc / skel / Desktop和&cd / etc / skel / Desktop
    cp /usr/share/applications/firefox.desktop。
    chmod + x firefox.desktop
    
  3. 将自定义快捷方式和文件夹复制到桌面(从chroot外部!)

    须藤cp -r / path / to / mydesktopitems / / home / ubuntu-builder / FileSystem / etc / skel / Desktop /
  4. 设置gnome-classic为默认外壳:

    / usr / lib / lightdm / lightdm-set-defaults -s gnome-classic
  5. 移除顶部的Gnome-Classic面板,然后将顶部的项目移至底部的面板:

    • 打开默认的面板布局:
      纳米/usr/share/gnome-panel/panel-default-layout.layout
    • 通过删除第1-4行,删除顶面板:
      [顶级面板]
      expand = true
      方向=顶部
      大小= 24
      
    • 通过如下修改斜体参数的粗体值,将“开始”菜单移至左下方:
      [对象菜单栏]
      object-iid = PanelInternalFactory :: MenuBar
      toplevel-id = 底部面板
      装箱指数= 0
      
    • 通过修改斜体参数的粗体值,将指示器移动到工作区切换器左侧的右下角,如下所示:

      [对象指标]
      object-iid = IndicatorAppletCompleteFactory :: IndicatorAppletComplete
      toplevel-id = 底部面板
      包类型=结束
      装箱指数 = 1
      
    • 删除左下方的“显示桌面”按钮;我更喜欢“开始”菜单是这里的第一件事,您可以将其保留或将其移至右下角,依此类推。删除这些行:

      [对象展示桌面]
      object-iid = WnckletFactory :: ShowDesktopApplet
      toplevel-id =底部面板
      装箱指数= 0
      
    • 保存并退出。

5.定制2:背景和主题

注意:/usr/share/glib-2.0/schemas包含大多数默认的背景/主题设置;我发现直接为LiveCD修改内容更容易,而不必处理复杂的内容,例如,防止登录屏幕背景与桌面背景相同。

  1. 禁用“复制”桌面背景和其他更改的登录屏幕(lightdm)

    • 打开 nano /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml
    • 您可以根据需要从默认值更改登录背景:
      <key name =“ background ” type =“ s”>
      <default> ' / usr / share / backgrounds / warty-final-ubuntu.png' </ default>
      
    • 将此设置为,以禁用“复制”桌面背景false
      <key name =“ draw-user-backgrounds ” type =“ b”>
      <default> false </ default>
      
    • 将登录主题设置为“发光”:
        <key name =“ theme-name ” type =“ s”>
      <default> '发光' </ default>
      
  2. 更改默认墙纸;在这里,我们将其设置为包含的“ Tie My Boat”/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'
    
  3. 将主题更改为发光

    • 打开Ubuntu的主题覆盖文件``nano / usr / share / glib-2.0 / schemas / ubuntu-artwork.gschema.override`,并将下面的Ambiance更改为Radiance
      [org.gnome.desktop.interface]
      gtk-theme =“ 氛围 ”
      ...
      [org.gnome.desktop.wm.preferences]
      theme =“ 氛围
  4. 重要:编译修改后的模式!

    • 现在我们完成了自定义,使用以下命令编译修改后的模式:
      glib-compile-schemas /usr/share/glib-2.0/schemas 

6.构建,测试和安装!

  • 按下BuildUbuntu Builder中的按钮开始构建自定义Live-CD ISO。UB自动处理以前必须手动执行的清理工作。

    在此处输入图片说明

  • 可以在中找到ISO /home/ubuntu-builder。您可以使用内置QEMU或其他虚拟机对其进行测试。

  • 我完成的CD大小为778 MB(在删除旧.23内核之后),如果用户愿意,还可以使用Unity和Gnome 3D,因此对于自定义而言相当不错!:)

结果如下:

  1. 启动后,您将获得“尝试Ubuntu”或“安装Ubuntu”选项:

    在此处输入图片说明

  2. 点击“尝试”将获得我们的自定义桌面!

    在此处输入图片说明

  3. 然后注销(使用ubuntu,使用空白密码登录)表明登录墙纸保留为默认设置:

    在此处输入图片说明

  4. 选择时区后,安装程序不会崩溃:

    在此处输入图片说明

  5. 选择用户名等进行安装:

    在此处输入图片说明

  6. 已安装的登录屏幕:

    在此处输入图片说明

  7. 已安装的桌面:

    在此处输入图片说明


1
如何更新/安装需要系统重新启动的软件包(例如内核或dbus)?当我尝试更新时,它会安装;但在gui模式下,会话指示器变成红色并说restart to complete the update
Khurshid Alam

如何用自己的图稿替换Ubuntu图稿?
Roshan George

这是行不通的。我不知道为什么。我不确定这是否会发生在我身上。当我在virtualbox中运行它时,它显示一个弹出框,提示“ /casper/vmlinuz.efi:未找到文件”。如何纠正呢?s24.postimg.org/jbez8svx1/Untitled.png
Roshan George

@izx能否请您告诉我,如何为ubuntu-builder设置工作目录?它正在/ home / ubuntu-builder中创建目录。我以root用户访问权限运行它。
shantanu

5
该项目已终止。PPA不起作用,该网站没有下载链接。我建议在答案的开头添加此信息,以帮助其他到达这里的人不要浪费他的时间。
Sopalajo de Arrierez 2015年

115

创建自己的Custom Live CD-手动方式。

1.准备

  • 首先,您下载Live CD ISO。在下载时,安装一些重建所需的软件:sudo apt-get install squashfs-tools schroot

    Squashfs 安装squashfs-tools是Linux的压缩只读文件系统。

    schroot 安装schroot允许用户在不同的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。删除自由办公室将在您不需要时释放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/。确保设置权限和所有者。

    例子:

    • 要将墙纸(将第一个命令中的文件名更改为您自己的图像)更改为该图像,并将主题更改为“光芒”,您可以使用以下信息来创建命令以将其设置为实时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完成的所有配置设置都存储在此文件中。

  • 更改直播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从那里挂载home及其它一样。

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快捷方式”,“应将默认主题更改为发光”和“应更改默认ubuntu壁纸”。在dv3500ea将其放入注释后,我对其进行了编辑。创建11.04实时CD时,我没有进行测试。


是否apt-get update && apt-get dist-upgrade还会升级Live CD上使用的内核/初始化?我的意思是引导进程的内核是由Syslinux加载的实时介质,而不是已安装的介质。
gertvdijk

apt-get dist-upgrade可以正常工作,除了一些warning: could not determine root device from /etc/fstab消息。它应该成为问题吗?
Sopalajo de Arrierez,2015年

否。但是请确保您看看并了解/的安装方式。
Rinzwind'3

1
根据help.ubuntu.com在12.04和14.04中的内容,/etc/resolv.conf可能不会在清理过程
中将

1
该方法仍然有效:经过Kubuntu 18.04.2。测试。注意:我只能使用unetbootin使.ISO可启动(etcher不起作用)。将.ISO刻录到DVD时引导没有问题。
Nmath

23

从现有/新安装中创建实时CD

编辑:此方法似乎不再起作用。我建议您尝试此质量检查中建议的其他方法。

一种好的方法是从当前安装中制作实时CD。这可以使用虚拟机来完成(只是不要在来宾操作系统中安装任何VM工具)

因此,首先我们需要全新安装(如果您不能真正安装它,请尝试使用虚拟机),并且仅安装您需要的东西(在您的情况下为Thunderbird,samba和ssh)。然后,我们调整系统并记录调整的位置(例如,更改桌面背景,设置在〜/ .gconf中或添加firefox快捷方式,它们位于〜/ Desktop中)。这是步骤4所需的。

  1. 设置一些变量:

    export WORK=~/temp
    export CD=~/livecd
    export FORMAT=squashfs
    export FS_DIR=casper
    

    将〜/ temp替换为我们将在其中工作的临时目录的路径。将〜/ livecd替换为CD树的路径。

  2. 制作文件夹结构。 sudo mkdir -p ${CD}/{${FS_DIR},boot/grub} ${WORK}/rootfs

  3. 现在,我们将需要安装一些软件包:

    sudo apt-get install grub2 xorriso squashfs-tools
    
  4. 现在,我们将复制当前安装,修改排除标志以满足您的需求:

    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        
    
  5. 现在,我们将根目录更改为新系统并进行修改。

    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
    
  6. 更新modules.dep和initramfs:

    depmod -a $(uname -r)
    update-initramfs -u -k $(uname -r)
    
  7. 删除非系统用户-不用担心,我们已将设置和数据复制到用户的“骨架”中。这意味着所有新用户都将拥有它们。

    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
    
  8. 清理:

    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
    
  9. 退出chroot。 exit

  10. 现在,我们复制内核:

    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
    
  11. 如果已安装安装程序,则需要执行此操作,以便安装程序不会安装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        
    
  12. 卸载我们已挂载的内容:

    sudo umount ${WORK}/rootfs/proc
    sudo umount ${WORK}/rootfs/sys
    sudo umount ${WORK}/rootfs/dev/pts
    sudo umount ${WORK}/rootfs/dev
    
  13. 转换为squashfs:

    sudo mksquashfs ${WORK}/rootfs ${CD}/${FS_DIR}/filesystem.${FORMAT}
    
  14. 制作filesystem.size: echo -n $(sudo du -s --block-size=1 ${WORK}/rootfs | tail -1 | awk '{print $1}') | sudo tee ${CD}/casper/filesystem.size

  15. 和md5: find ${CD} -type f -print0 | xargs -0 md5sum | sed "s@${CD}@.@" | grep -v md5sum.txt |sudo tee ${CD}/md5sum.txt

  16. 现在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
    }
    
  17. 如果需要,您可以添加一个附加菜单项,使您可以直接跳到Ubiquity。

    menuentry "Install Ubuntu" {
    linux /boot/vmlinuz boot=casper only-ubiquity quiet splash
    initrd /boot/initrd.img
    }
    
  18. 制作CD / DVD! sudo grub-mkrescue -o ~/live-cd.iso ${CD}

  19. 使用虚拟机进行测试!

一切归功于capink,因为该指南是从这里开始的


我对grub.cfg有疑问。这个文件grub.cfg只是在安装时使用,还是对已安装的系统持久。如果我不编辑grub.cfg怎么办?
Roshan George

@RoshanGeorge这将在CD上配置GRUB。安装后不应持续存在。
nickguletskii

我们是否可以像正常安装Ubuntu那样进行安装,即显示无处不在的安装程序,而不显示grub?就是说,在Ubuntu安装中,当我们插入并运行cd时,会显示普遍性而不是grub菜单,我们可以这样做吗?
Roshan George 2013年

@RoshanGeorge应该可以通过添加菜单项来实现linux /boot/vmlinuz boot=casper only-ubiquity quiet splash。我将进行测试和验证。
nickguletskii

@RoshanGeorge我已经成功添加了一个从启动菜单启动Ubiquity的选项。但是,我需要修复该指南-缺少一些普遍存在的步骤。我明天将尝试修复它。
nickguletskii

15

您可以使用ucklive-magic定制Live CD。

uck从10.04 LTS Lucid Lynx开始的所有版本的Ubuntu中均可从Ubuntu的官方软件来源获得。您可以uck从软件中心,通过apt-get命令行或单击此处进行安装 安装好


1
看起来UCK已经停产了:(
amc

Ubuntu Builder于2014年停产;Ubuntu Customization Kit可以安装但无法使用,并于2015年停产;System Imager于2016年停产。此答案确实需要更新。2019年有官方支持的方法吗?
allquixotic

@allquixotic uck 在18.04 Universe存储库中。此版本不起作用吗?
mchid

10

Ubuntu定制套件

它是脚本的集合,可简化从现有.iso映像创建自定义LiveCD的过程。它与Remastersys非常相似,不同之处在于它是主动维护的。它具有GUI来帮助进行自定义,但是也可以使用命令行来完成此操作。

  1. 它将要求选择CD中包含的语言包。
  2. 然后,它将要求选择.iso映像文件,该文件将用作新CD的基础。
  3. 为将要创建的新.iso映像命名。
  4. 然后,它将询问要添加到LiveCD或从LiveCD删除的软件包。它将为您提供命令行和默认GUI(Ubuntu软件中心)之间的选项。注意:您应该选择命令行。在命令行中,您可以使用apt-get或Ubuntu软件中心(从命令行键入software-center)添加/删除软件包。您还可以修改所有软件/应用程序的配置设置。
  5. 完成后(可能需要一些时间来下载所需的软件包),然后继续。
  6. 现在,坐下来放松。一段时间后,您的自定义LiveCD将准备就绪。

2
看起来UCK项目已经终止了:(
amc

5

如果您需要对所做的更改进行更多控制,则可以手动进行修改。

该过程包括开箱的Squashfs的含活OS的根文件系统的数据文件,Chroot环境为抽出文件系统,使您的修改,退出chroot,重新包装的squashfs文件,然后重新生成ISO映像。

有关完整的详细信息,请参见 Ubuntu Wiki 的LiveCDCustomization页面。


5

在Ubuntu软件中心

编辑>软件源>其他软件>添加。

将以下行粘贴到框中,然后单击添加源。

deb http://www.geekconnection.org/remastersys/repository karmic

重新加载源并从软件中心安装Remastersys。

完成后,在自定义ubuntu上安装所有想要的媒体编解码器和应用程序。从启动remastersys

系统>管理> Remastersys

选择dist模式,单击“确定”,然后等待过程完成。完成后,您将在

/home/remastersys/remastersys/custom.iso


我已按照与您在此描述的完全相同的步骤进行操作,但是不幸的是,在启动过程中,它显示“找不到ramdisk映像:/ ubninit”,并以10秒的间隔一次又一次地刷新。结果:我无法启动自定义的ISO。你能告诉我如何解决吗?请。
tuxtu

3

Remastersys可能会满足您的需求。您需要转到http://www.remastersys.com/ubuntu.html并按照说明进行操作。该程序从您正在运行的操作系统(包括所有设置和应用程序)生成一个iso。比您可以使用此iso刻录CD。不幸的是,过去存在将其作为实时CD运行的问题,而安装则没有问题(我不知道这是否仍然是问题)。


1
或使用GUI且不太困难的UCK
Uri Herrera

Remastersys已死。现在,该站点归域名抢注者所有。
allquixotic

1

我在Lucid之外没有“ GUI”,但是gNewsense(它是Ubuntu的一个分支)使他们的脚本采用Ubuntu版本,并免费提供了自定义的分支,并且有据可查。

它的基本过程是:

  1. 将自定义图稿放置在脚本可以找到的位置
  2. 确定内核中想要的(或不需要的)
  3. 确定所需的软件包(或不需要的软件包)
  4. 运行反映apt存储库的脚本
  5. 创建发行CD / ISO。

尽管并非完全“新手友好”,但它们的工具相对易于使用。



1

我建议您尝试使用Reconstructor

“ Reconstructor是一个Ubuntu GNU / Linux CD创建器,它允许您修改现有的Ubuntu发行版并另存为自己的Linux发行版。它使用Desktop(Live),Alternate(Install)或Server光盘作为基础,然后允许用于用户自定义。您基本上可以自定义整个环境,例如添加/删除软件,更改默认外观(初始,主题,字体,墙纸等),添加桌面链接等。”

另外,有关更多信息,您应该阅读以下链接:http : //maketecheasier.com/reconstructor-creating-your-own-ubuntu-distribution/2008/07/05

http://maketecheasier.com/build-your-own-ubuntu-based-distro-with-novo-builder/2010/07/02

http://ubuntuforums.org/showthread.php?t=869659


但是这些工具不会让我重命名我的发行版,它们只会允许我构建映像并添加软件包,或者至少是我所知道的。
user51447 2012年

重建程序链接已失效,并且域重定向到潜在的恶意站点!
AMC

1

您也可以使用JLIVECD来定制ISO映像。这是用于自定义Ubuntu和基于Ubuntu发行版的命令行工具。它使您可以完全控制需要自定义的内容,但是您需要知道需要做什么,即,它仅为您准备chroot环境(其余工作由您自己决定)并构建最终的ISO。您可以继续向现有更改中添加新更改,并继续检查基于它们的ISO。


1

您可以使用Cubic-此实用程序(由我测试)已在Ubuntu 18.04主机上与Ubuntu 18.04映像一起使用,对于大多数无法使用或已停产的其他工具而言,这可以说是更多了。

这是从Linoxide网站上使用它的指南。

粗略的步骤包括:

  • 确保您使用的是受支持的Ubuntu版本(我尝试过18.04;它可以工作)
  • 为立方PPA安装GPG密钥
  • 将立方PPA添加到您的来源
  • 安装立方工具
  • 运行它,然后按照GUI提示进行操作

另外,请参阅此答案askubuntu.com/a/741770/100356了解说明。
PJ辛格

0

按照说明下载http://sourceforge.net/projects/uck/files/uck/2.4.6/uck_2.4.6-0ubuntu1_all.deb/download,然后当它要求运行程序包管理器,控制台应用程序或继续打包时,选择控制台应用程序。

现在您可以运行

鹦鹉螺

统一2D发射器

统一2d面板

并做一切。

如果此操作不起作用,请先尝试运行程序包管理器,然后使用控制台重试。

希望这可以帮助。


ubuntu定制工具包(UCK)已停产
amc 2013年

0

您可以/etc/hosts通过编辑修改默认文件(以及其他一些默认文件)/usr/share/ubiquity/plugininstall.py

我认为分享很有帮助,因为我需要知道如何做。


实际上,在进一步检查之后,似乎/etc/hosts安装的文件不是由普遍存在plugininstall.py模块生成的。如果您确实希望修改默认/etc/hosts文件,则可能必须制作一个脚本,该脚本在首次启动后运行一次,然后删除或重命名自身。除非您重新编译netcfg模块-不建议这样做。
SW_user2953243 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.