树莓派可以移动linux,树莓派学习笔记 篇三:树莓派4B 与移动存储设备的那些事儿...
樹莓派學習筆記 篇三:樹莓派4B 與移動存儲設備的那些事兒
2019-11-24 23:03:55
39點贊
286收藏
14評論
本文是「樹莓派學習筆記」系列的第三篇,將學習下 Linux 系統分區的基礎知識,在樹莓派上如何掛載與卸載外接的移動存儲設備,不同分區格式的硬盤速度測試以及如何在一張 TF 卡上實現多系統啟動。
1.SD 卡與 TF 卡
內存卡是生活中很常見的一種存儲設備,之前常常分不清楚 SD 卡和 TF 卡的區別,SD 卡是 Secure Digital Card 的英文縮寫。TF 卡是 T-Flash 卡,被 SD 協會(SDA)采用之后,更名為 MicroSD ,此外移動存儲設備還有 U 盤、移動硬盤等等,以下對 SD 和TF 不做嚴格區分。
2.Linux 分區
在樹莓派4B 中插入 USB 存儲設備后,它將自動被掛載到 /media//下。桌面會顯示存儲設備的圖標,在文件瀏覽器里可以看到 U盤自動掛載在 /media/pi 目錄下,可以用 ls /media/pi/SANDISK32GB/ 命令查看U盤中的文件。
在 Linux 看來,任何硬件設備也都是文件,所有文件都放置在以根目錄為樹根的樹形目錄結構中。根目錄下的 /dev 目錄文件負責所有的硬件設備文件,無論是裝系統的 TF 卡還是外接的移動存儲設備,都可以在 /dev 目錄下查詢到。
當在 Linux 系統中使用這些硬件設備時,只有將 Linux 本身的文件目錄與硬件設備的文件目錄合二為一,硬件設備才能為我們所用。合二為一的過程稱為「掛載」。如果不掛載,通過 Linux 系統中的圖形界面系統可以查看找到硬件設備,但命令行方式無法找到。當 U 盤插入 Linux 后,系統會給 U盤分配一個目錄文件(比如 sda1),就位于 /dev 目錄下(/dev/sda1),但無法通過 /dev/sda1/ 直接訪問 U盤數據。
使用 lsblk -f 指令查看當系統的分區情況,可以看到裝系統的 TF 卡有兩個分區:mmcblk0p1 分區掛載在 /boot 目錄下,mmcblk0p2 分區掛載在根目錄下。插入的 U盤掛載在 /media/pi/SANDISK32GB 目錄下面,只有一個分區 sda1。
mmcblk0p1 代表 MMC卡(SD前身)塊設備 0(Block0)第一分區(Peer1)
NAME : 塊設備名。
MAJ:MIN : 顯示主要和次要設備號。
RM : 顯示可移動設備。0表示非移動設備,1表示可移動設備
SIZE : 塊設備的容量大小信息。
RO : 該項表明設備是否為只讀。0表示非只讀,1表示只讀
TYPE :塊設備類型,比如disk磁盤,part分區,lvm邏輯卷,rom只讀存儲
MOUNTPOINT : 設備掛載點。
sdx~ 中用 “sd” 來表示分區所在設備的類型(sd 表示 SCSI 硬盤,hd 表示 IDE 硬盤)?!皒” 表示盤號(a 為基本盤,b 為基本從屬盤,c 為輔助主盤,d 為輔助從屬盤)。“~“ 表示分區,前四個分區用數字 1 到 4 表示,他們是主分區或擴展分區,從 5 開始就是邏輯分區。比如 sdb3 表示為第二個 SCSI 硬盤上的第三個主分區或擴展分區。
3.樹莓派掛載
上文中提到在樹莓派4B 中插入的 U盤默認掛載在 /media/pi/ 目錄下面,可以使用 umount 命令先卸載。
可以看到 sda1 掛載點變成空的,圖形界面里桌面的硬盤圖標也消失了,這時候是無法讀取 U盤里的文件內容的。我們在 /home 目錄下新建一個 upan 的目錄
使用 sudo mount /dev/sda1 /home/upan 將 sda1 掛載到 upan 目錄下,這樣就可讀取 U盤了。
并不是根目錄下任何一個目錄都可以作為掛載點,由于掛載操作會使得原有目錄中文件被隱藏,因此根目錄以及系統原有目錄都不要作為掛載點,會造成系統異常甚至崩潰,掛載點最好是新建的空目錄。
這樣掛載的 U盤只有讀權限,沒有寫和執行的權限,sudo chmod +x 也不起任何作用,是無法拷入文件或者執行 U盤里的程序的。
掛載 FAT32 格式的硬盤:vfat 就是 Windows 系統中的 FAT32 格式,mount 本身就能支持,如果想要讀寫的話,掛載 U盤要加一些參數:sudo mount -o rw /dev/sda1 /home/upan, -o 表示后面跟隨選項,rw 是讀寫,這種寫法是 root 用戶有讀寫權限,如果當前用戶是 pi,則這個 upan 目錄是不能寫入的。因為 mount 命令是用 root 用戶身份執行的,沒有定義用戶 pi 的讀寫權限。sudo mount -o uid=pi,gid=pi /dev/sda1 /home/upan,uid = pi,gid = pi 指定為用戶 “pi”,組標識為 “pi”,則用戶 pi 可讀寫。
掛載 exFAT 格式的硬盤:如果你的 U盤或移動硬盤使用的是 exFAT 格式,mount 會說不支持。需要安裝下 exfat-fuse 軟件 sudo apt-get install exfat-fuse。
掛載 NTFS 格式的硬盤:默認掛載 NTFS 格式的硬盤只有只讀權限,需要先安裝所需軟件包 sudo apt-get install ntfs-3g,然后加載內核模塊 modprobe fuse ,重新插拔移動硬盤就可以讀寫了。
4.fstab 自動掛載
用命令行掛載重啟后會失效,通過修改 /etc/fstab 可以實現永久掛載。
fstab 文件結構如下:#
/dev/sda1 / ext4 noatime 0 1
/dev/sda2 none swap defaults 0 0
/dev/sda3 /home ext4 noatime 0 2指系統中設備的名稱,可以用 lsblk -f 命令查看,proc 設備是一個虛擬設備,并不在磁盤中真實存在,而僅僅存在于內存中,存儲有關進程和系統的信息。
是分區類型,在 Linux 下面有 ext2,ext3,ext4,jfs,jfs2,reiserfs,reiser4,swap 等,在 Windows 下面有 FAT 和 NTFS 等,這里可以設置成 auto。
是相關的安裝選項,noatime – 不更新文件系統上 inode 訪問記錄,defaults – 使用文件系統的默認掛載參數,例如 ext4 的默認參數為:rw, suid, dev, exec, auto, nouser, async。對 Windows 下的 NTFS 和 FAT 文件系統,還可以設置 uid=(掛載設備的指定用戶 id)、gid=(掛載設備的指定用戶群組 id)和 umask=(掛載設備的權限屏蔽)等, umask=0000 表示對所有人可讀可寫可執行。
設置是否讓備份程序 dump 備份文件系統。此字段通常設置為 0,禁用檢查。
設置啟動時文件系統檢查的順序。對于根設備應該是 1,對于其他分區應該是 2,或 0 禁用檢查。
我們在 fstab 文件末尾加入’ /dev/sda1 /home/upan vfat defaults,noatime 0 0 ’來實現開機自動掛載 U盤。視你的掛載設備而定, vfat 就是 Windows 系統中的 FAT32 格式,用樹莓派掛載移動硬盤做 NAS 一般用 ntfs 格式,不確定類型可以設置成 auto。
有的時候把外接的存儲設備拔掉后,開機會無法正常引導進入系統,原因是開機時未找到 fstab 中指定的硬盤而報錯??梢栽O置 nofail 選項,這樣外部設備在插入時掛載,在未插入時忽略,啟動時若設備不存在直接忽略它而不報錯。將命令修改為‘ /dev/sda1 /home/udisk auto defaults,nofail,x-systemd.device-timeout=1,noatime,umask=0000 0 0 ’這樣不管 boot 階段有沒有接入移動硬盤,都能正常啟動,而且你設置的掛載不會失效。不過這樣的話插入樹莓派的 U盤在圖形界面的桌面上不會有硬盤圖標,只能打開文件管理器訪問。
5.樹莓派磁盤速度測試
安裝測試磁盤速度的軟件:sudo apt-get install hdparm
查看下三個要測試的磁盤設備:lsblk -f,其中 mmcblk0 為裝系統的 TF 卡(ext4 格式),sda1 為外接的閃迪 32GB U盤(vfat格式),sdb2 為外接的東芝 1T 移動硬盤(ntfs)。
測試本地 TF 卡(ext4 格式)的讀寫速度:sudo hdparm -Tt /dev/mmcblk0 dd count=50 bs=1M if=/dev/zero of=~/test.img
測試外接 U盤(vfat 格式)的讀寫速度:sudo hdparm -Tt /dev/sda1 dd count=50 bs=1M if=/dev/zero of=/meida/udisk/test.img
測試外接移動硬盤(ntfs 格式)的讀寫速度:sudo hdparm -Tt /dev/sdb1 dd count=50 bs=1M if=/dev/zero of=/media/pi/yingpan/test.img
從上述三個硬盤讀取速度測試可以看出 ntfs 格式的磁盤速度最低,Linux 讀寫 NTFS 效率差,ext4 格式讀寫速度能甩 ntfs 幾條街。
6.多系統啟動
BerryBoot 是一款基于樹莓派的啟動管理工具,在樹莓派上安裝 BerryBoot 的 multi-boot manager 可使在一張 SD 卡上實現多系統的選擇啟動,省去更換不同系統 SD 卡的繁瑣。首先是在電腦上安裝 BerryBoot 到經過 FAT 格式格式化過的 SD 卡中,軟件自帶了一些樹莓派支持的系統,點擊 Add OS 選擇相應的系統就自動下載安裝了。
當你安裝 BerryBoot 中自帶的鏡像 Linux 系統版本時只需要點擊確認即可。如果你想手動添加系統到 BerryBoot系統啟動項中,需要先用 SquashFS 編譯這個 Linux 系統并獲得它的鏡像文件 .IMG,詳細過程見這篇文章使用BerryBoot使樹莓派支持多系統啟動 。多個系統都安裝完成之后,樹莓派開機后會出現 BerryBoot menu,通過鍵盤鼠標就可以選擇要啟動的系統版本了。
以上就是樹莓派上關于移動存儲設備的掛載相關問題了,都是些 Linux 的基本知識,我只是照著網上各種教程實際在樹莓派4B 上操作了一番,分享給大家。下一篇文章中將介紹樹莓派的系統備份相關內容,包括全卡備份和壓縮備份,感興趣的點個關注一起學習~
總結
以上是生活随笔為你收集整理的树莓派可以移动linux,树莓派学习笔记 篇三:树莓派4B 与移动存储设备的那些事儿...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国分省市县水土流失土地利用土壤侵蚀现状
- 下一篇: 计算机网络面试问题总结