日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

文件系统只读方案

發(fā)布時(shí)間:2023/12/14 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件系统只读方案 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 1、問題現(xiàn)象
  • 2、具體方案
    • 2.1 分區(qū)方案
    • 2.2 分區(qū)后的燒寫情況
    • 2.3 對(duì)文件系統(tǒng)的修改
    • 2.4 關(guān)于之前掛載后拔卡無法刪除相應(yīng)目錄的分析
      • 2.4.1 問題分析
      • 2.4.2 解決方案
    • 測試情況

1、問題現(xiàn)象

示教器在測試過程中丟失了根文件系統(tǒng)下的usr目錄,出現(xiàn)了嚴(yán)重的無法正常啟動(dòng)的問題。
具體為什么丟失該目錄,原因未能查到,解決方案是除了用戶目錄以外,將根文件系統(tǒng)的權(quán)限設(shè)置為只讀,保證根文件系統(tǒng)的安全性。

2、具體方案

2.1 分區(qū)方案

增加用戶目錄分區(qū),將根文件系統(tǒng)分為兩部分,一部分為系統(tǒng)組使用,設(shè)置為只讀;另一份給用戶使用,可任意讀寫。
具體根文件系統(tǒng)占200M,放在mtdblock8當(dāng)中,剩余部分作為用戶目錄,放在mtdblock9當(dāng)中,可用大概為800M。

2.2 分區(qū)后的燒寫情況

燒寫主要放在uboot當(dāng)中,其中分為usb燒寫和SD卡燒寫,兩者差別比較小,以sd燒寫為例。
通過以下宏定義,設(shè)置分區(qū)名字,方便燒寫。

#define MTDPARTS_DEFAULT "mtdparts=omap2-nand.0:256k(SPL)," \"256k(SPL.backup1)," \"256k(SPL.backup2)," \"256k(SPL.backup3),2048k(u-boot)," \"256k(u-boot-env),3m(LOGO),5m(kernel),200m(rootfs),-(home)"

燒寫時(shí)通過TYPE環(huán)境變量控制進(jìn)度條的顯示,home鏡像較小,燒寫很快,所以整體上進(jìn)度條保持原來4條的樣子。

2.3 對(duì)文件系統(tǒng)的修改


修改fstab當(dāng)中的掛載情況,將文件系統(tǒng)中需要掛載的文件卸載fstab當(dāng)中。
其中mmc1:2是之前QT使用的目錄,為了保證QT不做修改,這里鏈接到了home目錄下。

觸摸屏的校準(zhǔn)文件也進(jìn)行了鏈接,保證QT不做修改。

2.4 關(guān)于之前掛載后拔卡無法刪除相應(yīng)目錄的分析

2.4.1 問題分析

問題現(xiàn)象:拔卡或者拔出USB出現(xiàn)無法刪除掛載目錄的現(xiàn)象。
分析掛載腳本可知,當(dāng)存在/tmp/.automount-$name時(shí),才可以將目錄刪除掉。

if [ "$ACTION" = "remove" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; thenfor mnt in `cat /proc/mounts | grep "$DEVNAME" | cut -f 2 -d " " `do$UMOUNT $mntdone# Remove empty directories from auto-mountername="`basename "$DEVNAME"`"test -e "/tmp/.automount-$name" && rm_dir "/mmc1:2/Disk/$name"fi

產(chǎn)生該問題的原因就是在掛載SD卡和USB時(shí),系統(tǒng)的tmp目錄還沒有掛載,在上邊f(xié)stab設(shè)置當(dāng)中,可以看到var/volatile目錄是一個(gè)臨時(shí)目錄,當(dāng)斷電之后就會(huì)重置,tmp目錄就是從這里邊鏈接出來的。

這就是之前注釋掉rcS.d當(dāng)中的mount -at nonfs,nosmbfs,noncpfs 2>/dev/null解決了該問題的原因,注釋掉這句話之后,不再掛載所有的fstab目錄下的所有文件系統(tǒng),只能創(chuàng)建不是臨時(shí)目錄的目錄,這樣文件就永久保存了下來,就能夠保證保留下/tmp/.automount-$name,就不再產(chǎn)生該問題。

2.4.2 解決方案

掛載情況修改為以下,因?yàn)樾薷臑橹蛔x后,mmc1:2目錄只能放到home下,udev開始掛載sd卡時(shí),home目錄還未掛載,所以導(dǎo)致無法正常掛載SD卡,所以需要在系統(tǒng)初始化完成之后再次掛載。

rootfs / auto ro 1 1 proc /proc proc defaults 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 usbfs /proc/bus/usb usbfs defaults 0 0 tmpfs /var/volatile tmpfs defaults,size=16M 0 0 tmpfs /dev/shm tmpfs mode=0777 0 0 tmpfs /media/ram tmpfs defaults,size=16M 0 0 /dev/mtdblock9 /home/root auto rw,sync 0 0# uncomment this if your device has a SD/MMC/Transflash slot /dev/mmcblk0p1 /home/root/mmc1:2/Disk/mmcblk0p1 auto rw,sync 0 0 /dev/sda1 /home/root/mmc1:2/Disk/sda1 auto rw,sync 0 0

在rc5.d中最后的腳本中增加以下內(nèi)容。

if [ -e /dev/mmcblk0p1 ]; then mkdir /home/root/mmc1\:2/Disk/mmcblk0p1 touch "/tmp/.automount-mmcblk0p1" fi if [ -e /dev/sda1 ]; then mkdir /home/root/mmc1\:2/Disk/sda1 touch "/tmp/.automount-sda1" fi mount -at nonfs,nosmbfs,noncpfs 2>/dev/null

有效解決了之前拔卡無法刪除目錄的問題,也解決了home未掛載,SD卡不能掛載問題。同時(shí)解決了之前取消掛載tmpfs的問題。

測試情況

經(jīng)過簡單的測試,未發(fā)現(xiàn)文件系統(tǒng)只讀后對(duì)QT有影響,具體情況還需要進(jìn)一步測試。
對(duì)于文件系統(tǒng)文件丟失的具體原因還未找到,暫時(shí)不能確定改為只讀是否能有效解決丟失文件問題,需要多次測試。
后續(xù)會(huì)分析文件丟失的具體原因,嘗試復(fù)現(xiàn)問題。

總結(jié)

以上是生活随笔為你收集整理的文件系统只读方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。