LiveUSBでは、Linux用/ cowはどこで起動しますか?

LiveUSBでは、Linux用/ cowはどこで起動しますか?

LiveUSB Linuxを実行するときにISO 9660の上にどのファイルが追加されているかを確認したいと思います。起動時にUSBドライブのpersistence upperフォルダがworkはっきりと表示されます。私はmountLiveUSBで「一般的な方法」(w / out persistence)で起動されたLinuxで実行されており、パスと/マウントを確認します。しかし与えられました。overlayfsupperdir=/cow/uppersudo ls /cowno 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=premountbreak=ybreak=postmount,


また、他のコマンドライン引数が役に立つ可能性があり、
debugRAMdebug=y
ディスクの実行中に詳細なログをオンにすることも役立ちます。

// boot args は grub メニューで [Next] を押すと編集できます。e
//この情報はramdiskスクリプトを読み込んでいます。

仮想ディスクから

casper-rw永続性を処理する方法が見つかりましたunmkinitramfsscripts/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にアクセスできます。

おすすめ記事