Linux 板


LINE

繼上次完全使用loopfiles boot起來後 後續發現有些不明情況 會看不到放loopfiles的partition 如今可成功使用 mount --move 的方式改進 又順便修改成參數化的方式設定 所以原本只新增3行到linuxrc 變成新增3部份 part1: 參數讀取 part2: 解析UUID=, LABEL=; mount and losetup. part3: mount --move 在grub.cfg內的用法: ( 因過長 實為為同一行) linux vmlinuz loops_dev=LABEL=LOOPS loops_mnt=/loops loop_file=loop.ext4 root=LABEL=ROOT rootfstype=ext4 ro ROOT起來後 可以在//ROOT/loops/ 內再掛其他loopfiles 到/usr, /var, /home ... 以下為執行diff比較 原與新的差異結果 ==================================== 49a50,59 > # zm 1: for boot from loop file > loops_dev=*) > LOOPS_DEV=${x#*=} > ;; > loops_mnt=*) > LOOPS_MNT=${x#*=} > ;; > loop_file=*) > LOOP_FILE=${x#*=} > ;; # 485a496,543 > # zm 2: find the device which contains loop files, mount and losetup. > if [ -n "${LOOP_FILE}" ]; then > > if [ -z "${LOOPS_MNT}" ]; then > LOOPS_MNT='/loops' > fi > > MNT_DEV="" > while [ "${MNT_DEV}" = '' ] > do > case "${LOOPS_DEV}" in > LABEL=*|UUID=*) > > retval=1 > > if [ ${retval} -ne 0 ]; then > MNT_DEV=$(findfs "${LOOPS_DEV}" ) > # MNT_DEV=$(findfs "${LOOPS_DEV}" 2>/dev/null) > retval=$? > fi > > if [ ${retval} -ne 0 ]; then > MNT_DEV=$(busybox findfs "${LOOPS_DEV}" ) > # MNT_DEV=$(busybox findfs "${LOOPS_DEV}" 2>/dev/null) > retval=$? > fi > > if [ ${retval} -ne 0 ]; then > MNT_DEV=$(blkid -o device -l -t "${LOOPS_DEV}") > retval=$? > fi > > if [ ${retval} -eq 0 ] && [ -n "${MNT_DEV}" ]; then > good_msg "Detected loops_dev=${MNT_DEV}" > else > prompt_user "MNT_DEV" "block device" > continue > fi > ;; > > esac > done; > > mkdir -p ${LOOPS_MNT} > mount ${MNT_DEV} ${LOOPS_MNT} > losetup /dev/loop0 "${LOOPS_MNT}/${LOOP_FILE}" > fi # zm > 521a580 > 995a1055 > # 1006a1067,1075 > > # zm 3: move LOOPS_MNT from initramfs to real root > if [ -n "${LOOP_FILE}" ]; then > if [ ! -e "${CHROOT}${LOOPS_MNT}" ]; then > mkdir -p "${CHROOT}${LOOPS_MNT}" > fi > mount --move "${LOOPS_MNT}" "${CHROOT}${LOOPS_MNT}" > good_msg "Remounting loop_dev=${LOOPS_DEV} to ${CHROOT}${LOOPS_MNT}" > fi # --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.161.40.10
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Linux/M.1499124308.A.EDB.html
1F:推 kenduest: 推~ 07/04 12:12
2F:→ OrzOGC: 這是不是就像是LIVECD的做法? 07/04 12:31
這是比較像vitualbox, qemu的方式 不同的地方是讓實機來跑 不過想讓讓虛擬機跑也是可以喔 要多編虛擬機的用到的driver到kernel 上一篇有成功 LiveCD是比較複雜點的作法 例如有的是用 SquashFS + OverlayFS 目前正在實驗中 想參考LiveCD 結合squashfs, overlayfs, loop_device, ramdisk 做出 1.唯讀的SquashFS image 掛到/dev/loop0 在initram中設為Overlay 的lowerdir 2.一個ssd上的 ext4 image 掛到/dev/loop1 在initram中設為upperdir與workdir upperdir 可以當snapshot 3.用ramdisk當 overlay 的mergedir 4.以mergedir 當root 用來boot 5.隔週或一段期間可將upper回存lower後 備份lower 再重置overlay 把loop_device和ramdisk拿掉 就是liveCD的方法了 好像沒必要硬要用loop_device ? 當初動機是管理檔案比管理partition容易太多了 而且虛擬機也可用 方便做實驗 而用ramdisk是覺得設成這樣很像cache, 開機後設是可行的 還沒試過用來boot ※ 編輯: czm (1.163.144.75), 07/06/2017 04:46:23







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP