LiveUSB Linuxを実行するときにISO 9660の上にどのファイルが追加されているかを確認したいと思います。起動時にUSBドライブのpersistence
upper
フォルダがwork
はっきりと表示されます。私はmount
LiveUSBで「一般的な方法」(w / out persistence
)で起動されたLinuxで実行されており、パスと/
マウントを確認します。しかし与えられました。overlayfs
upperdir=/cow/upper
sudo ls /cow
no such file or directory
/cow
内容はどこで、どのように見ることができますか?
initrd
追加1:通過できましたunmkinitramfs
(参照https://unix.stackexchange.com/a/495524/446998)
$ find . -type f -exec bash -c 'cat {} | grep "/cow/upper" && ls -l {}' \;
if [ ! -d /cow/upper ]; then
mkdir -p /cow/upper
/cow/lost+found|/cow/upper|/cow/log|/cow/crash|/cow/install-logs-*) continue ;;
mv "$cow_content" /cow/upper
mount -t overlay -o "upperdir=/cow/upper,lowerdir=$mounts,workdir=/cow/work" "/cow" "$rootmnt" || panic "overlay mount failed"
-rw-r--r-- 1 alex alex 33834 Jun 24 2020 ./main/scripts/casper
私が想像する次のステップは、/cow
コンテンツに表示されないので、作成する方法を理解することです。initrd
ベストアンサー1
// kubuntu 22 lts livecdの経験に基づいて
ルート以降
RAMディスクの最後のステップ(/cdrom/casper/initrd)は次のとおりです。
run-init {rootmnt}" "${init}" "$@"
似たようなことをする
chroot {rootmnt}" "${init}" "$@"
このステップは、後で元のマウントポイントの観察に影響を与える可能性があります。
chrootの前に
幸いなことに、ルートを開始する前にインタラクティブシェルで一時停止する方法があります(続行するにはCtrl + Dを押すか終了します)。
カーネルブートcmdline argsを使用すると、
break=top,premount,mount,mountroot,bottom,init
この問題を解決できます。
//BTW:(同じ)またはのみをmanjaro 22
サポートし、複数の値の組み合わせはサポートしません。break=premount
break=y
break=postmount
,
また、他のコマンドライン引数が役に立つ可能性があり、
debug
RAMdebug=y
ディスクの実行中に詳細なログをオンにすることも役立ちます。
// boot args は grub メニューで [Next] を押すと編集できます。e
//この情報はramdiskスクリプトを読み込んでいます。
仮想ディスクから
casper-rw永続性を処理する方法が見つかりましたunmkinitramfs
。
scripts/casper
./スクリプト/キャスパー
setup_overlay() {
image_directory="$1"
rootmnt="$2"
# Mount up the writable layer, if it is persistent then it may well
# tell us what format we should be using.
mkdir -p /cow
cowdevice="tmpfs"
cow_fstype="tmpfs"
cow_mountopt="rw,noatime,mode=755"
# Looking for "$(root_persistence_label)" device or file
if [ -n "${PERSISTENT}" ]; then
cowprobe=$(find_cow_device "$(root_persistence_label)")
if [ -b "${cowprobe}" ]; then
cowdevice=${cowprobe}
cow_fstype=$(get_fstype "${cowprobe}")
cow_mountopt="rw,noatime"
else
[ "$quiet" != "y" ] && log_warning_msg "Unable to find the persistent medium"
fi
fi
mount -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} /cow || panic "Can not mount $cowdevice on /cow"
ここのコードは永続パーティションを決定し、それをマウントします。
chrootの後に/ cowを残してください。
RAMディスクシェルで/ cow / rootが準備された後
mkdir /root/_cow
mount -o bind /cow /root/_cow
その後、システムにルートを変更した後、/_cowは元の外部層である/ cowにアクセスできます。