如果您unsquash
在squashfs.img
Fedora Live ISO 中,然后挂载rootfs.img
包含 Live 映像的根文件系统的文件,您将看到该/home
目录是空的。
然而,当您从实时映像启动时,您的用户所在的liveuser
目录/home/liveuser
就会“神奇地”出现。
rootfs.img
如果该目录不存在于?中,那么该目录来自哪里?
您可以通过以下方式验证:
mount -o loop Fedora.iso /mnt/
mkdir iso
cp -rpf /mnt/* iso/
umount /mnt
unsquashfs iso/LiveOS/squashfs.img
cd squashfs-root/LiveOS
mount -o loop,ro rootfs.img /mnt
ll /mnt/home/
total 0
然而当你启动时,你会发现一个liveuser
主目录。是如何自发产生的?
奇怪的是,在 中fedora-live-base.ks
,实际上创建了这个目录和用户:
action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser
然而还没有liveuser
。
这里发生了什么 ?
答案1
及其liveuser
主目录是在livesys
服务启动期间创建的。 service/init 脚本本身是在%post
kickstart 文件中创建的 - 请注意:
cat > /etc/rc.d/init.d/livesys << EOF
脚本中的行%post
。第 64 行和第 216 行之间的所有内容fedora-live-base.ks是 init 脚本的内容livesys
,因此useradd
在 Live CD 创建期间不会执行该命令,并且不会创建主目录。