練習 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]:~$
解釋
- 列印你的
/etc/fstab
檔案的內容,它包含分割槽資訊以及掛載位置。 - 列印當前已掛載的分割槽。
- 列印系統中所有分割槽的 UUID。
- 解除掛載
/tmp
分割槽,以便你可以檢查它。 - 再次打印出當前已掛載的分割槽。
/tmp
現在不存在於此列表中。 - 檢查
/tmp
分割槽是否有錯誤。fsck
通過讀取相應的/etc/fstab
條目知道要檢查哪個分割槽。 - 掛載
/etc/fstab
中描述的所有分割槽。 - 再次列印當前已掛載的分割槽。
/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),