Fedora Live ISOunsquash
にある場合は、ライブイメージのルートファイルシステムを含むファイルをマウントすると、ディレクトリが空であることがわかります。squashfs.img
rootfs.img
/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
サービス/初期化スクリプト自体は%post
キックスタートファイルに生成されます。注:
cat > /etc/rc.d/init.d/livesys << EOF
スクリプトの行%post
。 64行と216行の間のすべてfedora-live-base.ksはinitスクリプトの内容livesys
なので、useradd
Live CDの作成中にこのコマンドは実行されず、ホームディレクトリも作成されません。