linux文件系統之loop環設備--新建一個文件系統並掛載


1.  /dev目錄下有所有已經連接到操作系統上的設備,他們能在/dev里出現就表示他們在硬件層面和系統核心層面被識別了。對於stdin、stdout、zero等設備是可以直接用> <這些訪問符     訪問的,但是對於塊設備是不能直接訪問的。

    塊設備是具有一定結構的隨機存取設備,對這種設備的讀寫是按塊來進行的,他使用緩沖區來暫時存放數據。而字符設備是一個順序設備,對這種設備的讀寫是按字符來進行的,而這些字    符是連續的形成了一個數據流。他不具有緩沖區,所以對這種設備的讀寫是實時的。(資料:linux系統之linux塊設備的詳解

   我理解塊設備如同Map List集合這種數據結構,而字符設備如同堆棧這種先進后出的數據結構。兩種數據結構明顯集合比堆棧更加靈活,使用更加方便,而且對已一般人而言Map list的數      據結構經過了高手的封裝使用起來效率也更高。

    相對應於我說的封裝。事實是塊設備還是字符設備的定義屬於操作系統的設備訪問層,與實際物理設備沒有必然的哦聯系。設備訪問層下面是驅動程序,是驅動程序來支持設備是塊設備還    是字符設備的。

   訪問塊設備最一般的方式就是給塊設備安裝文件系統。一般來說,沒有文件系統的塊設備是不能被訪問的。如果一個設備本身是有文件系統的,我們應該怎樣訪問這個文件系統哪?這就需       要linux下最常見的一個命名mount。

2.linux磁盤命令df可以查看已經被掛載的塊設備的使用情況。直接在Terminal輸入df可以查看到一下信息

harvey@harvey-Virtual-Machine:~$ df
文件系統          1K-塊    已用     可用 已用% 掛載點
/dev/sda1      40144476 3211660 34870532    9% /
udev             483036       4   483032    1% /dev
tmpfs            197044     716   196328    1% /run
none               5120       0     5120    0% /run/lock
none             492600     176   492424    1% /run/shm

Filesystem 1 K-blocks Used Available Use% Mounted on
該文件系統對應的塊設備的路徑在/dev文件夾下 該文件系統包含的數據塊的數目 已經使用的數據塊 沒有使用的數據塊 已用占總量的百分比 文件系統的掛載點

3.

harvey@harvey-PC ~
$ find /dev -name "sd*"
/dev/sda
/dev/sda1
/dev/sda2

代碼中找sd開頭的設備為sda sda1 sda2中sda表示該系統只有一個硬盤,有兩個邏輯分區,一個主分區,直接查看是看不到主分區的內容的。

4.查看存儲在磁盤上最開始位置的分區表信息的命令是fdisk –l

5.完整操作創建一個空的文件系統並掛載

harvey@harvey-Virtual-Machine:~$ dd if=/dev/zero of=loopfile.img bs=1G count=1  #創建一個1G的數據,用來作為虛擬設備的載體
記錄了1+0 的讀入
記錄了1+0 的寫出
1073741824字節(1.1 GB)已復制,73.8948 秒,14.5 MB/秒
harvey@harvey-Virtual-Machine:~$ ls                      #創建成功
D:wuxi.txt        loopfile.img  模板  圖片  下載  桌面
examples.desktop  公共的        視頻  文檔  音樂
harvey@harvey-Virtual-Machine:~$ file loopfile.img             #剛創建的文件數據類型是data
loopfile.img: data
harvey@harvey-Virtual-Machine:~$ mkf                    #查看系統所有的文件系統類型                
mkfifo        mkfs          mkfs.ext2     mkfs.ext4dev  mkfs.ntfs     
mkfontdir     mkfs.bfs      mkfs.ext3     mkfs.minix    mkfs.vfat     
mkfontscale   mkfs.cramfs   mkfs.ext4     mkfs.msdos    
harvey@harvey-Virtual-Machine:~$ mkfs.ext4 loopfile.img             #對載體分區,改變數據類型
mke2fs 1.42 (29-Nov-2011)
loopfile.img is not a block special device.
無論如何也要繼續? (y,n) y
Discarding device blocks: 完成                            
文件系統標簽=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376

Allocating group tables: 完成                            
正在寫入inode表: 完成                            
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

harvey@harvey-Virtual-Machine:~$ file loopfile.img             #查看賦予文件系統的文件的類型改變了
loopfile.img: Linux rev 1.0 ext4 filesystem data, UUID=a23e0869-e3fa-438d-afcd-be73ee8e5f6b (extents) (large files) (huge files)
harvey@harvey-Virtual-Machine:~$ ll /mnt                #mnt默認什么都沒有
總用量 8
drwxr-xr-x  2 root root 4096  4月 19  2012 ./
drwxr-xr-x 24 root root 4096  3月 21 15:59 ../
harvey@harvey-Virtual-Machine:~$ sudo mkdir /mnt/loopback        #mnt下創建loopback文件夾,用來顯示查看到的掛載后的設備。所謂掛載如同數據類型的轉換,不轉換就無法交互使用
[sudo] password for harvey: 
harvey@harvey-Virtual-Machine:~$ ll /mnt/loopback/            #loopback文件夾創建成功,並且是空的目錄
總用量 8
drwxr-xr-x 2 root root 4096  3月 21 20:40 ./
drwxr-xr-x 3 root root 4096  3月 21 20:40 ../
harvey@harvey-Virtual-Machine:~$ sudo mount -o loop loopfile.img /mnt/loopback/ #回環掛載設備
harvey@harvey-Virtual-Machine:~$ ll /mnt/loopback/              #loopback掛載設備后創建了一個lost+fount文件夾--可能是文件系統的日志文件還沒研究
總用量 24
drwxr-xr-x 3 harvey harvey  4096  3月 21 20:39 ./
drwxr-xr-x 3 root   root    4096  3月 21 20:40 ../
drwx------ 2 root   root   16384  3月 21 20:39 lost+found/
harvey@harvey-Virtual-Machine:~$ df                     #查看文件系統掛載列表 最后一行對loop0設備掛載了/mnt/loopback
文件系統          1K-塊    已用     可用 已用% 掛載點
/dev/sda1      40144476 3244852 34837340    9% /
udev             483036       4   483032    1% /dev
tmpfs            197044     716   196328    1% /run
none               5120       0     5120    0% /run/lock
none             492600     176   492424    1% /run/shm
/dev/loop0       999320    1284   929224    1% /mnt/loopback
harvey@harvey-Virtual-Machine:~$ umount /mnt/loopback             #卸載掛載
umount:/mnt/loopback 不在 fstab 中(並且您不是 root 用戶)
harvey@harvey-Virtual-Machine:~$ sudo umount /mnt/loopback 
harvey@harvey-Virtual-Machine:~$ df                     #文件系統掛載類別沒有了loop0設備的掛載信息
文件系統          1K-塊    已用     可用 已用% 掛載點
/dev/sda1      40144476 3244864 34837328    9% /
udev             483036       4   483032    1% /dev
tmpfs            197044     716   196328    1% /run
none               5120       0     5120    0% /run/lock
none             492600     176   492424    1% /run/shm
harvey@harvey-Virtual-Machine:~$ ll /mnt/loopback/            #/mnt/loopback目錄下的lost+find文件夾也沒有了
總用量 8
drwxr-xr-x 2 root root 4096  3月 21 20:40 ./
drwxr-xr-x 3 root root 4096  3月 21 20:40 ../

參考資料:losetup -- 設置循環設備

loop 設備 (循環設備)

Linux 文件系統剖析 

Linux 下使用mount命令掛載CDROM


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM