我正在尝试一些 Ubuntu 衍生产品的 ISO 映像 - 这些映像应该与 Ubuntu 非常相似。版本是 14.04.1 64 位。这里的想法是创建一个风俗实时 USB 记忆棒,基于您第一次从 DVD-ROM 或 USB 记忆棒启动 Ubuntu 时获得的实时会话。
请注意,我曾尝试在 USB 上正常安装 Ubuntu,但这对我来说并不适合,因为 USB 作为存储介质速度很慢。因此,此系统中的任何会话都很缓慢且通常效率低下。
因此,为了获得最佳效果和更快的响应,会话需要从 RAM 驱动器运行,而最省力的路径似乎是启动 Ubuntu LiveCD 或 LiveUSB 时获得的实时 Ubuntu 会话。如果您有任何其他建议,请随时提出。
我看过很多指南。我听说过Ubuntu customization kit
很多其他(大多很老)特定的自定义。所有指南中可以确定的一件事是,自定义需要在casper
初始(ram?)系统中完成。因此,我提取了 ISO 映像Xubuntu
,并且获得了unsquashed
启动filesystem.squashfs
文件。据我所知,启动脚本位于
squashfs-root/usr/share/initramfs-tools/scripts/casper-bottom/ #directory
squashfs-root/usr/share/initramfs-tools/scripts/casper #file
我想要实现的目标——至少在最初阶段——是
- 拥有自己的用户和自己的用户名。
- 删除实时会话用户
- 禁用自动登录
我已经尝试从实时会话中执行此操作(使用持久性),但 lightdm 自动登录功能不是持久的,删除实时会话用户也是如此。
所以在文件中casper
我看到有 4令人惊奇地相关条目
USERNAME=casper
USERFULLNAME="Live session user"
HOST=live
BUILD_SYSTEM=Custom
并将其改为
USERNAME=nass
USERFULLNAME="not a live session"
HOST=portableos
BUILD_SYSTEM=Custom
看起来我不仅可以从启动时拥有自己的用户,而且没有必要删除 casper 用户,因为我已经是替代 casper 的主用户:)
不幸的是,用自定义值替换这些值、重新制作 squashfs 文件系统并替换 ISO 中的文件不会更改实时会话用户。实时会话用户再次被称为“Ubuntu”。
同样,chmod -x
在文件中执行casper-bottom/15autologin
(甚至完全删除它)不会改变启动过程,也不会在登录时要求输入密码。
因此看来这再次不是创建新用户、删除 casper 用户或禁用自动登录启动过程的正确位置。
所以我不得不问,我应该在哪里进行所有这些定制?
编辑:
评论user-session=xubuntu
中squashfs-root/etc/lightdm/lightdm.conf.d/10-xubuntu.conf
我已成功禁用自动登录。
我也更新了文件squashfs-root/etc/casper.conf
USERNAME=nass
USERFULLNAME="not a live session"
HOST=portableos
BUILD_SYSTEM=Custom
但是我再次启动到用户“Ubuntu”——这是唯一可用的用户。
最后,squashfs-root/etc/passwd
不包含用户“Ubuntu”的任何条目,所以我不能简单地在那里改变它。
不用说,每次尝试启动之前我都会“mksquashfs”文件系统并替换相关文件。
答案1
最后!
经过无数个小时的搜索和汇总零散的信息,要更改默认用户名,必须进入initrd.lz
。看来 sqyashfs 继承了从初始 RAM 驱动器导出的用户名。
因此,一旦您提取了 liveCD ISO,请从 中获取 initrd casper/initrd.lz
,然后:
- 使用以下方法提取 initrd
lzma -dc -S .lz /mnt/casper/initrd.lz | cpio -id
- 将刚刚在当前文件夹中提取的 initrd.lz 移离 tcurrent 文件夹。
- 在中添加您喜欢的用户名和主机名
etc/casper.conf
。 在同一个文件中取消注释“flavour”变量。
请注意,无需更改中的默认用户名和值
scripts/casper
。您可能会像我一样感到困惑,但是没有理由将它们存在那里。(为什么呢?)返回到 initrd 根文件夹并重新创建 initrd 文件
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ~/new-initrd.lz
编辑:
--dereference
上述步骤#5 中的内容不应在较新(>=17.04)版本的 *ubuntu 中使用。
现在,替换下面的另一个 initrd.lz extracted-iso/casper/
,您应该能够使用您选择的用户名登录。
答案2
抱歉,我说得这么明显,但您最初的问题是实时 USB 驱动器对您来说太慢了,所以现在您尝试通过软件解决方案来实现,而这个解决方案可以通过另一个硬件解决方案轻松解决……
只需购买速尔USB 棒,安装 Ubuntu,根据您的需要修改启动过程,就大功告成了!15 分钟?20 分钟???
SLC USB 3.0 棒基本上就是一根棒上的 SSD 硬盘。它们的价格大约是普通 USB 棒的 2-3 倍,但速度也是普通 USB 棒的 4-8 倍(在 USB 速度相同的情况下),使用寿命也是普通 USB 棒的 4-8 倍……
我能看到的唯一缺点你不能指望走进任何一家小商店就期望他们有库存!
答案3
启动驱动器,然后转到用户帐户(或用户和组),并将自己添加为用户,这曾经有效,这也会摆脱用户 Ubuntu。驱动器必须具有持久安装。关闭时可能会出现一些问题。
如果您更喜欢编辑 filesystem.squashfs 方法,那么从 Live DVD 或第二个 Live USB 启动时编辑它可能是最简单的方法。
如果您需要在从目标驱动器启动时编辑此内容,那么对于实时 USB,请转到 filesystem/cdrom/casper/filesystem.squashfs。
如果您使用 grub2 启动 iso 文件,则转到 filesystem/isofile/(iso 的位置)并使用存档管理器打开 iso,然后编辑您在那里找到的 filesystem.squashfs。
答案4
我确认,这对我有用
更改用户名:
new-initrd/etc/casper.conf
更改 uid:
new-initrd/scripts/casper-bottom/25adduser
有关自定义 initrd 映像的更多信息: https://wiki.ubuntu.com/CustomizeLiveInitrd
(请小心删除 USB 驱动器上的 .disk/info 文件,因为它可能会覆盖您的设置)
塞巴斯蒂安