1. 程式人生 > >練習 19:檔案系統:掛載,mount,/etc/fstab

練習 19:檔案系統:掛載,mount,/etc/fstab

我希望你熟悉分割槽的概念。如果沒有,我會簡要介紹一下。首先引用自維基百科:

磁碟分割槽是一種行為,將硬碟驅動器分為多個邏輯儲存單元,它們被稱為分割槽,來將一個物理磁碟驅動器視為多個磁碟。

看一看:

[email protected]:~$ sudo parted /dev/vda
GNU Parted 2.3
Using /dev/vda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit GB
(parted) p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      0.00GB  13.3GB  13.3GB  extended
 5      0.00GB  1.02GB  1.02GB  logical   ext3            boot
 6      1.03GB  2.05GB  1.02GB  logical   linux-swap(v1)
 7      2.05GB  3.07GB  1.02GB  logical   ext3
 8      3.07GB  5.12GB  2.05GB  logical   ext3
 9      5.12GB  9.22GB  4.09GB  logical   ext3
10      9.22GB  13.3GB  4.09GB  logical   ext3

(parted)

這是一個物理硬碟,分為 7 個不同的分割槽。這樣做的原因很多,但最好被理解為“分治”原則的應用。以這種方式分割時,流氓程式不能通過佔用所有磁碟空間,使整個伺服器崩潰,該程式將限制在其分割槽中。我不會再談論磁碟分割槽,但是我會繼續關注檔案系統,再次引用維基百科

檔案系統是一種組織資料的手段。通過提供儲存,檢索和更新資料的過程,以及管理包含它的裝置上的可用空間,資料預期在程式終止後保留。檔案系統以有效的方式組織資料,並根據裝置的特定特性進行調整。在作業系統和檔案系統之間,通常存在緊耦合。一些檔案系統提供了機制來控制資料和元資料的訪問。確保可靠性是檔案系統的主要職責。一些檔案系統允許多個程式幾乎同時更新同一個檔案。

類 Unix 作業系統建立一個虛擬檔案系統,這使得所有裝置上的所有檔案似乎都存在於單個層次結構中。這意味著,在這些系統中,有一個根目錄,系統上存在的每個檔案位於它下方的某個地方。類 Unix 系統可以使用 RAM 磁碟或網路共享資源作為其根目錄。

這意味著,所有檔案系統都整合在一個大樹中。對於熟悉 Microsoft Windows 的人來說,這意味著比起C:\D:\等碟符,這種命名方案有一個單獨的根,/,所有其他分割槽都連線到它上面。將檔案系統連線到現有目錄的過程稱為掛載。連線檔案系統的目錄稱為掛載點。同樣,看一看:

[email protected]:~$ mount
/dev/vda5 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/vda10 on /home type ext3 (rw)
/dev/vda7 on /tmp type ext3 (rw)
/dev/vda9 on /usr type ext3 (rw)
/dev/vda8 on /var type ext3 (rw)

這是我之前展示給你的相同分割槽,你可以在這個列表中看到掛載點。不以/dev/vda開頭的是虛擬檔案系統,它允許訪問不同的系統設施,但它們和此練習無關。現在我們來看看/etc/fstab檔案:

[email protected]:~$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults    0       0
# / was on /dev/vda5 during installation
UUID=128559db-a2e0-4983-91ad-d4f43f27da49 /         ext3    errors=remount-ro 0       1
# /home was on /dev/vda10 during installation
UUID=32852d29-ddee-4a8d-9b1e-f46569a6b897 /home     ext3    defaults        0       2
# /tmp was on /dev/vda7 during installation
UUID=869db6b4-aea0-4a25-8bd2-f0b53dd7a88e /tmp      ext3    defaults        0       2
# /usr was on /dev/vda9 during installation
UUID=0221be16-496b-4277-b131-2371ce097b44 /usr      ext3    defaults        0       2
# /var was on /dev/vda8 during installation
UUID=2db00f94-3605-4229-8813-0ee23ad8634e /var      ext3    defaults        0       2
# swap was on /dev/vda6 during installation
UUID=3a936af2-2c04-466d-b98d-09eacc5d104c none      swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0

看起來很恐怖,但讓我們選取一行:

# <file system>                             <mount point>  <type>  <options>         <dump>  <pass>
UUID=128559db-a2e0-4983-91ad-d4f43f27da49   /              ext3    errors=remount-ro 0       1

按照欄位將其拆開。

UUID=128559db-a2e0-4983-91ad-d4f43f27da49 # Filesystem to mount. This UUID is synonim for /dev/vda5
/                    # This is root filesystem, mount it to /
ext3                 # This is ext3 filesystem. There are many different filesystems out there
errors=remount-ro    # If any errors encountered during mounting filesystem should be remounted read-only
0                    # This filesystem should not be backed up by dump utility
1                    # This filesystem should be checked first by fsck utility

和之前一樣,這些資訊可以通過man fstab提供給你。現在我將向你展示使用現有檔案系統的幾個命令:

  • mount - 打印出所有已掛載的檔案系統。
  • mount -a - 掛載/etc/fstab中描述的所有檔案系統。
  • mount /dev/sda<N> /<mount point> - 掛載分割槽。
  • umount /dev/sda<N> /<mount point> - 解除掛載分割槽。
  • mount -h - 打印出使用mount的簡短幫助。
  • fsck - 檢查分割槽是否有錯誤。
  • blkid - 打印出唯一的分割槽識別符號。

現在,你將學習如何列出已安裝的分割槽,掛載和解除掛載它們。

這樣做

1: cat /etc/fstab
2: mount
3: sudo blkid
4: sudo umount /tmp
5: mount
6: sudo fsck /tmp
7: sudo mount -a
8: mount

你會看到什麼

[email protected]:~$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda1 during installation
UUID=05d469bb-dbfe-4d5a-9bb2-9c0fe9fa8577 /               ext3    errors=remount-ro 0       1
# /home was on /dev/sda9 during installation
UUID=a1b936a0-df38-4bf5-b095-6220ffdfc63c /home           ext3    defaults        0       2
# /tmp was on /dev/sda8 during installation
UUID=d0a86453-0dbb-4f33-a023-6c09fe9fa202 /tmp ext3 defaults 0 2
# /usr was on /dev/sda5 during installation
UUID=b9544cbb-cdb6-4f3b-89e7-a339f52bfac7 /usr            ext3    defaults        0       2
# /var was on /dev/sda6 during installation
UUID=e15e713b-5850-4bc3-b99e-ab6f1d037caa /var            ext3    defaults        0       2
# swap was on /dev/sda7 during installation
UUID=4d516f09-80ff-4956-8a75-e9757697f6b1 none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0
[email protected]:~$ mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda9 on /home type ext3 (rw)
/dev/sda5 on /usr type ext3 (rw)
/dev/sda6 on /var type ext3 (rw)
/dev/sda8 on /tmp type ext3 (rw)
/dev/sda8 on /tmp type ext3 (rw)
[email protected]:~$ sudo blkid
/dev/sda1: UUID="05d469bb-dbfe-4d5a-9bb2-9c0fe9fa8577" TYPE="ext3"
/dev/sda5: UUID="b9544cbb-cdb6-4f3b-89e7-a339f52bfac7" TYPE="ext3"
/dev/sda6: UUID="e15e713b-5850-4bc3-b99e-ab6f1d037caa" TYPE="ext3"
/dev/sda7: UUID="4d516f09-80ff-4956-8a75-e9757697f6b1" TYPE="swap"
/dev/sda8: UUID="d0a86453-0dbb-4f33-a023-6c09fe9fa202" TYPE="ext3"
/dev/sda9: UUID="a1b936a0-df38-4bf5-b095-6220ffdfc63c" TYPE="ext3"
[email protected]:~$ sudo umount /tmp
[email protected]:~$ mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda9 on /home type ext3 (rw)
/dev/sda5 on /usr type ext3 (rw)
/dev/sda6 on /var type ext3 (rw)
[email protected]:~$ sudo fsck /tmp
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sda8: clean, 11/61752 files, 13973/246784 blocks
[email protected]:~$ sudo mount -a
[email protected]:~$ mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda9 on /home type ext3 (rw)
/dev/sda5 on /usr type ext3 (rw)
/dev/sda6 on /var type ext3 (rw)
/dev/sda8 on /tmp type ext3 (rw)
[email protected]:~$

解釋

  1. 列印你的/etc/fstab檔案的內容,它包含分割槽資訊以及掛載位置。
  2. 列印當前已掛載的分割槽。
  3. 列印系統中所有分割槽的 UUID。
  4. 解除掛載/tmp分割槽,以便你可以檢查它。
  5. 再次打印出當前已掛載的分割槽。/tmp現在不存在於此列表中。
  6. 檢查/tmp分割槽是否有錯誤。fsck通過讀取相應的/etc/fstab條目知道要檢查哪個分割槽。
  7. 掛載/etc/fstab中描述的所有分割槽。
  8. 再次列印當前已掛載的分割槽。/tmp已經返回了此列表。

相關推薦

練習 19檔案系統掛載mount/etc/fstab

我希望你熟悉分割槽的概念。如果沒有,我會簡要介紹一下。首先引用自維基百科: 磁碟分割槽是一種行為,將硬碟驅動器分為多個邏輯儲存單元,它們被稱為分割槽,來將一個物理磁碟驅動器視為多個磁碟。 看一看: [email protected]:~$ sudo parte

第030講檔案系統介紹一個高大上的東西

目錄 動動手 0. 請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式! 介紹跟Python的檔案相關且十分有用的模組。模組是什麼? 模組是一個包含你定義的函式和變數的檔案,字尾是.py,模組可以做到被別的程式所引入,以

作業系統概念(高等教育出版社第七版)複習——第十章檔案系統介面

第十章 檔案系統介面 基礎知識 檔案屬性 名稱,識別符號,型別,位置,大小,保護,時間、日期和使用者標誌。 檔案操作 建立檔案、寫檔案、讀檔案、在檔案內重定位、刪除檔案、截短檔案。 每個開啟檔案有如下

作業系統概念(高等教育出版社第七版)複習——第十一章檔案系統實現

第十一章 檔案系統實現 基礎知識 檔案系統實現(超重點) 一個磁碟可分為多個分割槽,或者一個卷可橫跨多個磁碟上的數個分割槽。分割槽可以是“生的”,即沒有檔案系統,也可以是“熟的”,即含有檔案系統。 目

xfs檔案系統格式化以及掛載

引言 情景:   <原始碼> linux:3.14.56 xfsprogs:3.2.0   <命令> mkfs.xfs -f /dev/[sdx] ; mount /dev/[sdx]; umount /dev/[sdx] 如情景

微信支付手機系統自帶的瀏覽器調用微信支付如何實現(非掃碼)

所有 價格 驗證 返回 調用 -i 是否為空 支付申請 data- Q:翻看了微信支付的api沒發現支持h5調支付接口的情況(微信js除外),然後卻發現美團的支付成功調用了,這是怎麽實現的? A: 使用微信H5支付即可。H5支付通過URL調起微信APP,

4星|《認識經濟》全面系統的經濟學普及讀物鴻篇巨制價格超貴

例子 nal 工具 成本 公眾 自主 wechat 份額 學會 認識經濟 全面系統的經濟學普及讀物。內容包括微觀經濟學和宏觀經濟學,分章節介紹經濟學的專題,比如市場,消費,需求彈性,競爭,壟斷,稅收,貿易,GDP,貨幣,金融市場,匯率等。 全書篇幅較長,對經濟學的各

ROS(一)檔案系統介紹

ROS的檔案系統 一個catkin軟體包稱為一個程式包package,package主要包含兩個主要檔案: (1)package.xml:package的描述資訊 (2)CMakeList.txt:構建package的主要CMake檔案,用於呼叫Catkin的函式與巨集,解析p

第六天檔案系統

1,儲存空間:資料區&元資料區 -----> 命令stat 2,元資料:檔名,大小,時間戳,許可權,屬主,屬組,對應的資料儲存在磁碟塊---->Index node(元資料編號:ls -i), 3,目錄:資料區儲存的是檔名和對應的inode編號。格式化是為了建立檔案系統 4,bitm

LINUX 新增的磁碟不建立分割槽直接建立檔案系統掛載怎麼辦?

LINUX下新增的磁碟不建立分割槽,直接建立檔案系統並掛載: 不是都要先使用FDISK進行分割槽的麼?怎麼直接跳過了這步,直接建立檔案系統,並掛載了呢? 解決方法: 假設新硬碟是 /dev/sdcfdisk操作的是/dev/sdc ,分割槽後才會有/dev/sdc1 /

Hadoop分散式檔案系統HDFS架構和設計(3)

HDFS被設計成能夠在一個大叢集中跨機器可靠地儲存超大檔案。它將每個檔案儲存成一系列的資料塊,除了最後一個,所有的資料塊都是同樣大小的。為了容錯,檔案的所有資料塊都會有副本。每個檔案的資料塊大小和副本系數都是可配置的。應用程式可以指定某個檔案的副本數目。副本系數可以在檔案建立的時候指定,也可以在之後改變。

Hadoop分散式檔案系統架構和設計要點

Hadoop分散式檔案系統:架構和設計要點原文:http://hadoop.apache.org/core/docs/current/hdfs_design.html一、前提和設計目標1、硬體錯誤是常態,而非異常情況,HDFS可能是有成百上千的server組成,任何一個元件都

ARM開發板與PC機Ubuntu系統建立連線採用NFS(網路檔案系統掛載

        Linux中最常用的方法就是採用NFS來執行各種程式,這樣可以不必花費很多時間下載程式,如果應用程式變的越來越大,就會發現NFS執行的方便所在。 首先要搭建NFS伺服器,步驟如下: (1)安裝nfs伺服器和客戶端           #sudo apt-ge

Hadoop分散式檔案系統架構和設計要點(翻譯)

Hadoop分散式檔案系統:架構和設計要點一、前提和設計目標1、硬體錯誤是常態,而非異常情況,HDFS可能是有成百上千的server組成,任何一個元件都有可能一直失效,因此錯誤檢測和快速、自動的恢復是HDFS的核心架構目標。2、跑在HDFS上的應用與一般的應用不同,它們主要

儲存一問檔案系統——卷和快照小BUG

儲存小疑惑 背景 原因 方法 對於一個檔案系統,比如 zfs,ext4等 背景 當我們建立一個卷,把它映射出來,格式化成ext4檔案系統 掛載到客戶機後,對這個卷多次讀寫,並在每次讀寫後做快照,如果這個卷一致沒有被 umount

深入理解Lustre檔案系統-第12篇 Lustre磁碟檔案系統ldiskfs

ldiskfs(有些時候被錯誤地稱為Linux ext4檔案系統)是對Linux ext3檔案系統的打了很多補丁的一個版本,由Sun Microsystems公司開發和維護。ldiskfs是Linux ext3和ext4檔案系統的超集。現在它只被Lustre檔案系統用在伺服

【Unix/Linux程式設計實踐】檔案系統編寫pwd

知識點 目錄是一個包含檔名與i-節點對的列表的檔案。 ”檔案在目錄中“的含義:目錄中存放的只是檔案在i-節點表的入口,而檔案的內容則儲存在資料區中。例如,“檔案x在目錄a中”意味著在目錄a中有一個指向檔案x的i-節點的連結,這個連結所附加的檔名為x。 pw

Docker基礎檔案系統之AUFS

為了更好的理解docker,除了namespace和cgroups之外,在docker中如何進行儲存檔案也是需要進行進一步理解的。在docker中叫做storage driver,在本文中將會介紹

小甲魚《零基礎學習Python》課後筆記(三十)檔案系統——介紹一個高大上的東西

動動手 0.編寫一個程式,統計當前目錄下每個檔案型別的檔案數,程式實現如圖: 程式碼如下: import os filename_list = os.listdir(os.curdir) filetype_dict = dict() for each_fi

系統架構設計師 檔案系統之索引節點

PS:下面的講解,基於Linux/Unix         索引節點,其英文為 Inode,是 Index Node 的縮寫。         儲存於檔案系統上的任何檔案都可以用索引節點來表示。        檔案系統主要分為兩部分,一部分為元資料(metadata),