日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux的基本学习(四)——磁盘与文件系统管理

發布時間:2024/1/8 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux的基本学习(四)——磁盘与文件系统管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

承接Linux的基本學習(三)我們接著往下走

?

?


認識Linux文件系統:

整塊磁盤的組成主要有:

  • 圓形的碟片(主要記錄數據)
  • 機械手臂,與在機械手臂上的磁頭(擦寫碟片上的數據)
  • 主軸馬達,可以轉動碟片,讓機械手臂的磁頭在碟片上讀寫數據
  • 碟片上的物理組成又是:

    • 扇區(Sector)為最小的物理存儲單位,且依據磁盤設計的不同,目前主要有512B與4KB兩種格式
    • 將扇區組成一個圓,那就是柱面(Cylinder)
    • 早期的分區主要以柱面為最小分區單位,現在的分區通常使用扇區為最小分區單位(每個扇區都有其號碼)
    • 磁盤分區表主要有兩種格式,MBR(限制較多)、GPT
    • MBR分區表中,第一個扇區最重要,里面有:主引導記錄(Master boot record,MBR)——446B、分區表——64B。
    • GPT分區表除了分區數量擴充較多之外,支持的磁盤容量也可以超過2TB

    文件系統特性:

    磁盤分區完畢后要進行格式化,這是因為每種操作系統所設置的文件屬性/權限不同,為了存放這些文件所需的數據,因此就需要將分區進行格式化,以成為操作系統能夠利用的文件系統格式

    在Linux的學習中,我們通常稱呼一個可被掛載的數據為一個文件系統而不是一個分區

    我們知道,每個文件除了自身的數據還有非常多的屬性,,例如文件的權限(rwx)和文件屬性等,文件系統通常會將這兩部分的數據分別存放在不同的區塊,權限與屬性放置到inode中,至于實際數據則放到數據區塊中,另外,還有一個超級區塊。

    • 超級區塊:記錄此文件系統的整體信息,包括inode與數據區塊的總量、使用量、剩余量,以及文件系統的格式與相關信息等
    • inode:記錄文件的屬性,一個文件占用一個inode,同時記錄此文件的數據所在的區塊號碼
    • 數據區塊:實際記錄文件的內容。若文件太大時,會占用多個區塊

    這種數據存儲的方式我們稱為索引式文件系統

    與之對比的文件系統比如U盤的FAT格式,讀取了一個區塊,才能知道下一個區塊的位置,如此往復(所以常常需要碎片整理:同一個文件所屬的區塊集合在一起,使讀取容易)

    Linux的ext2文件系統(inode):

    標準的ext2就是使用這種inode為基礎的Linux文件系統

    文件系統一開始就將inode與數據區塊規劃好了,除非重新格式化(或利用resize2fs等命令修改大小),否則inode與數據區塊固定后就不再變動。

    但是,當我們文件系統高達數百GB時,所有的inode與數據區塊通通放在一起就不太合適了,因此,ext2文件系統格式化的時候基本上時區分為多個區塊群組(block group),每個區塊群組都有獨立的inode、數據區塊、超級區塊系統。文件系統最前面有一個啟動扇區(boot sector),這個啟動扇區可以安裝啟動引導程序(這樣才能夠制作出多重引導環境)

    每一個區塊群組的內容如下:

    數據區塊(data block):

    ext2文件系統中所支持的區塊大小由1k、2k、4k(在格式化時各個區塊的大小就固定了)

    Block 大小1KB2KB4KB
    最大單一文件限制16GB256GB2TB
    最大文件系統總容量2TB8TB16TB

    ?

    雖然ext2已經能夠支持大于2GB以上的單一文件容量,不過某些應用程序依舊使用舊的限制

    另外的基本限制如下:

    • 原則上,區塊的大小與數量在格式化完就不能再修改(除非重新格式化)
    • 每個區塊內最多只能夠放置一個文件的數據
    • 如果文件大于區塊的大小,則一個文件會占用多個區塊數量
    • 若文件小于區塊,則該區塊內剩余空間就不能再使用了

    inode表(inode table):

    inode會記錄如下數據:

    • 該文件的讀寫屬性(read、write、excute)
    • 該文件的擁有者與用戶組(owner、group)
    • 該文件的大小
    • 改文件建立時間或狀態改變的時間(ctime)
    • 最近一次讀取的時間(atime)
    • 最近修改的時間(mtime)
    • 定義文件特性的標識(flag),如SetUID
    • 該文件真正內容的指向(pointer)

    inode的數量與大小也是在格式化的時候就固定了,inode還有什么特色?

    • 每個inode大小均固定為128B(新的ext4與xfs可設置到256B)
    • 每個文件都僅會占用一個inode而已
    • 文件系統能夠建立的文件數量與inode有關
    • 系統讀取文件時需要先找到inode,并分析inode所記錄的權限與用戶是否符合,然后(符合)再讀取區塊內容

    在這個CSDN找到了鳥哥的這樣一張圖

    上圖最左邊為inode本身(128bytes),里面有12個直接指向block號碼的對照,這12組記錄就能夠直接讀取block號碼啦!至于所謂的間接就是再拿一個block來當作記錄block號碼的記錄區,如過檔案太大的時候,就會使用間接的block來記錄編號。如上圖當中間接只是拿一個block來記錄額外的號碼而已。同理,如果檔案持續增大,那么就會利用所謂的雙間接,第一個block僅指出下一個記錄編號的block在那里,實際記錄的在第二個block當中。

    這樣子inode能夠指定多少個block呢?我們以較小的1K block來說明好了,可以指定的情況下:

    12個直接指向:12*1K=12K
    間接 :256*1K = 256K;
    雙間接 : 256*256*1K;
    三間接:256*256*256*1K;
    總額 : 12+256+256*256+256*256*256 = 16G;

    故區塊格式化為1k大小時,可以容納的最大文件為16GB

    超級區塊(Superblock):

    超級區塊是記錄整個文件系統相關的地方,沒有超級區塊,就沒有整個文件系統,它主要記錄的信息有:

    • 數據區塊與inode的總量
    • 未使用和已經使用的inode與數據區塊、數量
    • 數據區塊與inode的大小(block為1、2、4k,inode為128B或256B)
    • 文件系統的掛載時間、最近一次寫入數據的時間、最近一次檢驗磁盤(fsck)的時間等文件系統的相關信息
    • 一個有效位數值,若此文件系統已被記載,則有效位為0,若未被掛載,則有效位為1

    如果超級區塊損壞,你的文件系統可能就需要花費很多時間去恢復,一般來說,超級區塊的大小為1024B。此外,每個區塊群組都可能還要超級區塊。但是我們說一個文件系統應該僅有一個超級區塊而已,那這是怎么回事?事實上除了第一個區塊群組內會含有超級區塊外,后續的區塊群組不一定含有超級區塊,而若含有超級區塊則該超級區塊主要是作為第一個區塊群組內超級區塊的備份,這樣可以進行超級區塊的恢復

    文件系統描述說明(Filesystem Description):

    這個區塊可以描述每個區塊群組的開始與結束的區塊,以及說明每個區段(超級區塊、對照表、inode對照表、數據區塊)分別介于哪一個區塊之間,這部分也能夠用dumpe2fs來觀察

    區塊對照表(block bitmap):

    新增文件時總會用到區塊,那你要使用哪個區塊來做記錄?當然是選擇空區塊來記錄新文件的數據,那你怎么知道哪個區塊是空的?這就要通過區塊對照表的輔助了。從區塊對照表當中可以知道哪些區塊是空的,因此我們的系統就能夠很快速地找到可使用的空間來處理文件。

    inode對照表(inode bitmap):

    這個其實與區塊對照表的功能類似,只是區塊對照表記錄的是使用與未使用的區塊號碼,inode對照表則是記錄使用與未使用的inode號碼。

    dumpe2fs(查詢ext系列超級區塊):

    使用dumpe2fs可以查詢ext系列文件系統的超級區塊信息(僅對ext文件系統有效)

    [root@www ~]# dumpe2fs [-bh] 裝置文件名 選項與參數: -b :列出保留為壞軌的部分(一般用不到吧) -h :僅列出 superblock 的數據,不會列出其他的區段內容!利用 blkid 這個命令可以顯示出目前系統被格式化的設備,后面的TYPE就可以看出文件系統類型。[root@www ~]# dumpe2fs /dev/hdc2 dumpe2fs 1.39 (29-May-2006) Filesystem volume name: /1 <==這個是文件系統的名稱(Label) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file Default mount options: user_xattr acl <==默認掛載的參數 Filesystem state: clean <==這個文件系統是沒問題的(clean) Errors behavior: Continue Filesystem OS type: Linux Inode count: 2560864 <==inode的總數 Block count: 2560359 <==block的總數 Free blocks: 1524760 <==還有多少個 block 可用 Free inodes: 2411225 <==還有多少個 inode 可用 First block: 0 Block size: 4096 <==每個 block 的大小啦! Filesystem created: Fri Sep 5 01:49:20 2008 Last mount time: Mon Sep 22 12:09:30 2008 Last write time: Mon Sep 22 12:09:30 2008 Last checked: Fri Sep 5 01:49:20 2008 First inode: 11 Inode size: 128 <==每個 inode 的大小 Journal inode: 8 <==底下這三個與下一小節有關 Journal backup: inode blocks Journal size: 128MGroup 0: (Blocks 0-32767) <==第一個 data group 內容, 包含 block 的啟始/結束號碼Primary superblock at 0, Group descriptors at 1-1 <==超級區塊在 0 號 blockReserved GDT blocks at 2-626Block bitmap at 627 (+627), Inode bitmap at 628 (+628)Inode table at 629-1641 (+629) <==inode table 所在的 block0 free blocks, 32405 free inodes, 2 directories <==所有 block 都用完了!Free blocks:Free inodes: 12-32416 <==剩余未使用的 inode 號碼 Group 1: (Blocks 32768-65535) ....(底下省略).... # 由于數據量非常的龐大,因此鳥哥將一些信息省略輸出了!上表與你的屏幕會有點差異。 # 前半部在秀出 supberblock 的內容,包括標頭名稱(Label)以及inode/block的相關信息 # 后面則是每個 block group 的個別信息了!您可以看到各區段數據所在的號碼! # 也就是說,基本上所有的數據還是與 block 的號碼有關就是了!很重要!

    與目錄樹的關系:

    目錄:

    當我們在Linux下的文件系統建立一個目錄時,文件系統會分配一個inode與至少一塊區塊給該目錄。inode記錄該目錄的相關屬性與權限,并可記錄分配到的那塊區塊號碼,而區塊則是在這個目錄下的文件名與該文件名占用的inode號碼數據。

    如果想要實際觀察root根目錄內的文件所占用的inode號碼時,可以使用ls -i這個選項來處理:

    最左邊就是inode號碼

    文件:

    當我們在Linux下的ext2建立一個一般文件時,ext2會分配一個inode與相對于改文件大小的區塊數量給該文件。例如:假設我的一個區塊為4KB,而我要建立一個100KB的文件,那么Linux將分配一個inode與25個區塊來存儲該文件。但同時請注意,由于inode僅有12個直接指向,因此還要需要一個區塊來記錄號碼。

    目錄樹讀取:

    由于目錄樹是由根目錄開始讀起,因此系統通過掛載的信息可以找到掛載點的 inode 號碼,此時就能夠得到根目錄的 inode 內容,并依據該 inode 讀取根目錄的 block 內的文件名數據,
    再一層一層的往下讀到正確的文件名。

    如果我想要讀取 /etc/passwd 這個文件時,系統是如何讀取的?

    [root@study ~]# ll -di / /etc /etc/passwd 128 dr-xr-xr-x. 17 root root 4096 May 4 17:56 / 33595521 drwxr-xr-x. 131 root root 8192 Jun 17 00:20 /etc 36628004 -rw-r--r--. 1 root root 2092 Jun 17 00:20 /etc/passwd

    該文件的讀取流程為(假設讀取者身份為 dmtsai 這個一般身份使用者):

  • /的 inode: 通過掛載點的信息找到 inode 號碼為 128 的根目錄 inode,且 inode 規范的權限讓我們可以讀取該 block 的內容(有 r 與 x) ;
  • /的 block: 經過上個步驟取得 block 的號碼,并找到該內容有 etc/ 目錄的 inode 號碼 (33595521);
  • etc/的 inode: 讀取 33595521 號 inode 得知 dmtsai 具有 r 與 x 的權限,因此可以讀取 etc/ 的 block 內容;
  • etc/的 block: 經過上個步驟取得 block 號碼,并找到該內容有 passwd 文件的 inode 號碼 (36628004);
  • passwd的 inode: 讀取 36628004 號 inode 得知 dmtsai 具有 r 的權限,因此可以讀取 passwd 的 block 內容;
  • passwd的 block: 最后將該 block 內容的數據讀出來。
  • 文件系統大小與磁盤讀取性能:

    關于文件系統的使用效率上,當你的一個文件系統規劃的很大時,例如 100GB 這么大時, 由于磁盤上面的數據總是來來去去的,所以,整個文件系統上面的文件通常無法連續寫在一起(區塊號碼不會連續的意思),
    而是填入式的將數據填入沒有被使用的區塊當中。如果文件寫入的區塊真的分的很散, 此時就會有所謂的文件數據離散的問題發生了。

    雖然我們的 ext2 在 inode 處已經將該文件所記錄的區塊號碼都記上了, 所以數據可以一次性讀取,但是如果文件真的太過離散,確實還是會發生讀取效率低落的問題。 因為磁頭還是得要在整個文件系統中來來去去的頻繁讀取。果真如此,那么可以將整個文件系統內的數據全部復制出來,將該文件系統重新格式化, 再將數據給他復制回去即可解決這個問題。

    此外,如果文件系統真的太大了,那么當一個文件分別記錄在這個文件系統的最前面與最后面的區塊號碼中, 此時會造成磁盤的機械手臂移動幅度過大,也會造成數據讀取性能的低落。而且磁頭在搜尋整個文件系統時,
    也會花費比較多的時間去搜尋!因此,磁盤分區的規劃并不是越大越好,而是真的要針對你的主機用途來進行規劃才行。

    ?

    ext2/3/4文件的存取與日志式文件系統的功能:

    假如我們想要新增一個文件,此時文件系統的操作是:

  • 先確定用戶對于欲新增文件的目錄是否具有w與x權限,若有才能繼續
  • 根據inode對照表找到沒有使用的inode號碼,并將新文件的權限/屬性寫入
  • 根據區塊對照表找到沒有使用中的 block 號碼,并將實際的數據寫入 block 中,且更新 inode 的 block 指向數據;
  • 將剛剛寫入的 inode 與 block 數據同步更新 inode對照表與區塊對照表,并更新超級區塊的內容。
  • 一般來說,我們將 inode對照表與數據區塊稱為數據存放區域,至于其他例如超級區塊、區塊對照表與inode對照表等區段就被稱為 metadata (元數據),因為他們經常變動。

    如果你的文件在寫入文件系統時,因為不知名原因導致系統中斷(例如突然的停電啊、 系統核心發生錯誤啊~等等的怪事發生時),所以寫入的數據僅有 inode存儲表及數據區塊而已, 最后一個同步更新中介數據的步驟并沒有做完,此時就會發生元數據的內容與實際數據存放區產生不一致 (Inconsistent) 的情況了。

    為了解決這個問題,出現了日志式文件系統。

    日志式文件系統:

  • 預備:當系統要寫入一個文件時,會先在日志記錄區塊中紀錄某個文件準備要寫入的信息;
  • 實際寫入:開始寫入文件的權限與數據;開始更新元數據的數據;
  • 結束:完成數據與元數據的更新后,在日志記錄區塊當中完成該文件的紀錄。
  • 萬一數據的紀錄過程當中發生了問題,那么我們的系統只要去檢查日志記錄區塊, 就可以知道哪個文件發生了問題,針對該問題來做一致性的檢查即可,而不必針對整塊文件系統去檢查。

    Linux文件系統的運行:

    我們知道,所有的數據都得要載入到內存后 CPU 才能夠對該數據進行處理。如果你常常編輯一個好大的文件,在編輯的過程中又頻繁的要系統來寫入到磁盤中,由于磁盤寫入的速度要比內存慢很多,因此你會常常耗在等待磁盤的寫入/讀取上。

    為了解決這個效率的問題,inux 使用的方式是通過一個稱為非同步處理(asynchronously)的方式。所謂的非同步處理是這樣的:

    當系統載入一個文件到內存后,如果該文件沒有被更動過,則在內存區段的文件數據會被設置為干凈(clean)的。 但如果內存中的文件數據被更改過了(例如你用 nano 去編輯過這個文件),此時該內存中的數據會被設置為臟的 (Dirty)。此時所有的動作都還在內存中執行,并沒有寫入到磁盤中! 系統會不定時的將內存中設置為“Dirty”的數據寫回磁盤,以保持磁盤與內存數據的一致性。

    Linux 系統文件系統與內存有非常大的關系:

    • 系統會將常用的文件數據放置到內存的緩沖區,以加速文件系統的讀/寫;
    • 承上,因此 Linux 的實體內存最后都會被用光!這是正常的情況!可加速系統性能;
    • 你可以手動使用sync來強迫內存中設置為 Dirty 的文件回寫到磁盤中;
    • 若正常關機時,關機指令會主動調用sync來將內存的數據回寫入磁盤內;
    • 但若不正常關機(如跳電、死機或其他不明原因),由于數據尚未回寫到磁盤內, 此重新開機后可能會花很多時間在進行磁盤檢驗,甚至可能導致文件系統的損毀(非磁盤損毀)。

    掛載點的意義:

    將文件系統與目錄樹結合的動作我們稱為“掛載”。掛載點一定是目錄,該目錄為進入該文件系統的入口。 因此并不是你有任何文件系統都能使用,必須要“掛載”到目錄樹的某個目錄后,
    才能夠使用該文件系統的。

    其他Linux支持的文件系統與VFS:

    Linux還支持其他的文件格式:

    • 傳統文件系統:ext2 / minix / MS-DOS / FAT (用 vfat 模塊) / iso9660 (光盤)等等;
    • 日志式文件系統: ext3 /ext4 / ReiserFS / Windows’ NTFS / IBM’s JFS / SGI’s XFS / ZFS
    • 網絡文件系統: NFS / SMBFS

    Linux VFS:

    Linux系統都是通過一個叫Virtual Filesystem Switch的內核功能區讀取文件系統,也就是說,整個Linux識別的文件系統其實都是VFS在進行管理,我們用戶并不需要知道每個硬盤設備分區上面的文件系統是什么,VFS會主動幫助我們做好讀取的工作

    XFS文件系統簡介:

    CentOS 7開始,默認的文件系統已經由原本的ext4變成了xfs文件系統,原因:

    ext系列當前較燒腦筋的地方:支持度最廣,但格式化最慢

    ext 文件系統對于文件格式化的處理方面,采用的是預先規劃出所有的 inode、區塊、元數據 等數據,未來系統可以直接取用,不需要再進行動態配置的作法。這個作法在早期磁盤容
    量還不大的時候還算 OK,但時至今日,磁盤容量越來越大,連傳統的 MBR 都已經被 GPT 所取代,現在都已經說到 PB 或 EB 以上容量了!可以想像,當你的 TB 以上等級的傳統 ext 文件系統在格式化的時候,光是系統要預先分配 inode 與 區塊就消耗你好多好多的時間。

    XFS文件系統的配置:

    xfs 文件系統在數據的分布上,主要規劃為三個部份,一個數據區 (data section)、一個文件系統活動登錄區 (log section)以及一個實時運行區 (realtime section)。

    • 數據區(data section)

    數據區就跟我們之前談到的 ext 家族一樣,包括 inode、數據區塊、超級區塊等數據,都放置在這個區塊。這個數據區與 ext 家族的區塊群組類似,
    也是分為多個儲存區群組(allocation groups)來分別放置文件系統所需要的數據。 每個儲存區群組都包含了

  • 整個文件系統的超級區塊
  • 剩余空間的管理機制
  • inode的分配與追蹤
  • 此外,inode與 block 都是系統需要用到時, 這才動態配置產生,所以格式化動作超級快。

    • 文件系統活動登錄區(log section)

    這個區域主要用來記錄文件系統的變化,有點像是日志區。文件的變化會在這里記錄下來,直到該變化完整地寫入到數據區后,該條記錄才會被結束。另外,xfs的設計很有趣,你可以指定外部的磁盤來作為xfs文件系統的日志區塊。

    • 實時運行區(realtime section)

    當文件要被創建時,xfs 會在這個區段找到一個到數個 extent 區塊,將文件放置在這個區塊,等到分配完畢后,再寫入到 data section 的inode 和區塊中。
    這個 extent 區塊的大小得要在格式化的時候就先指定,最小值是 4K 最大可到 1G。一般非磁盤陣列的磁盤默認為64K的容量,而具有類似磁盤陣列的stripe情況下,則建議將extent設置為與stripe一樣大,這個extent最好不要亂動,因為可能會影響物理磁盤的性能

    XFS文件系統的描述數據觀察:

    有一個命令類似ext的系列的dumpe2fs觀察xfs文件系統

    xfs_info 掛載點|設備文件名

    • 第一行里面的isize:指的是inode的容量,每個有512B,agcount是存儲區群組個數(allocation group),每個存儲區群組有agsize個區塊
    • 第二行里面的sectsz指的是邏輯扇區(sector)的容量設置為512B這么大的意思
    • 第四行里面的bsize指的是區塊的容量,每個區塊為4K的意思,共有blocks個區塊在文件系統內
    • 第七行里面的internal指的是這個登錄區的位置在文件系統內,而不是外部設備的意思

    ?


    文件系統的簡單操作:

    磁盤與目錄的容量:

    磁盤的整體數據是在超級區塊中,但是每個文件的容量則在inode當中記載,下面的命令叫我們方便查看:

    df:

    列出文件系統的整體磁盤使用量

    df [-ahikHTm] [目錄或文件名] -a :列出所有的文件系統,包括系統特有的 /proc 等文件系統; -k :以 KBytes 的容量顯示各文件系統; -m :以 MBytes 的容量顯示各文件系統; -h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示; -H :以 M=1000K 取代 M=1024K 的進位方式; -T :連同該硬盤分區的文件系統名稱 (例如 xfs) 也列出; -i :不用磁盤容量,而以 inode 的數量來顯示

    • Filesystem:代表該文件系統是在哪個硬盤分區,所以列出設備名稱
    • 1K-blocks:說明下面的數字單位是1KB,可以用-h或-m來改變容量
    • Used:使用掉的磁盤空間
    • Available:剩下的磁盤空間大小
    • Use%:磁盤使用率
    • Mounted on:就是磁盤的掛載目錄(掛載點)

    /proc的東西都是Linux系統所需要加載的系統數據,而且是掛載在內存中的。

    /dev/shm/,其實是利用內存虛擬出來的磁盤空間,通常是總物理內存的一半

    du:

    du [-ahskm] 文件或目錄名稱 選項與參數: -a :列出所有的文件與目錄容量,因為默認僅統計目錄下面的文件量而已。 -h :以人們較易讀的容量格式 (G/M) 顯示; -s :列出總量而已,而不列出每個個別的目錄占用容量; -S :不包括子目錄下的總計,與 -s 有點差別。 -k :以 KBytes 列出容量顯示; -m :以 MBytes 列出容量顯示;

    容量默認以kb為單位

    ?

    硬鏈接與符號鏈接-ln:

    硬鏈接(Hard Link,硬式鏈接或實際鏈接):

    想要讀取一個文件,必須經過目錄記錄的文件名來指向到正確的inode號碼才能讀取,也就是說,其實文件名只與目錄有關,但是文件內容則與inode有關。硬鏈接就是在某個目錄下新增一條文件名鏈接到某inode號碼的關聯記錄而已。

    如圖,兩個文件的inode都是17678412,也就是說訪問這兩個文件訪問的是一個地方。

    硬鏈接有這樣的性質:

    • 不能跨文件系統
    • 不能跨鏈接目錄

    符號鏈接(Symbolic Link,即快捷方式):

    符號鏈接就是建立一個獨立的文件,這個文件會讓數據的讀取指向它鏈接的那個文件的文件名。

    只是指向操作,當源文件被刪除,符號鏈接的文件就打不開了

    鏈接文件的重要內容就是它會寫上目標文件的文件名

    由符號鏈接創建的文件為一個獨立的新文件,所以會占用inode與區塊

    ?

    使用ln命令去制作鏈接文件:

    ln [-sf] 源文件 目標文件 -s:如果不加任何參數就進行鏈接,就是硬鏈接,至于-s就是符號鏈接 -f:如果目標文件存在時,就主動的將目標文件直接刪除后再建立

    ?


    磁盤的分區、格式化、檢驗與掛載:

    如果我們想要在系統里面新增一塊磁盤的話,應該做哪些操作:

  • 對磁盤進行劃分,以建立可用的磁盤分區
  • 對該磁盤分區進行格式化(format),以建立系統可用的文件系統
  • 若想要仔細一點,則可對剛剛建立好的文件系統進行檢驗
  • 在Linux系統上,需要建立掛載點(亦即是目錄),并把它掛在上來
  • 觀察磁盤分區狀態:

    liblk:

    lsblk(可以看成是【list block device】的縮寫):列出系統上所有的磁盤列表

    lsblk [-dfimpt] [device] 選項與參數: -d :僅列出磁盤本身,并不會列出該磁盤的分區數據 -f :同時列出該磁盤內的文件系統名稱 -i :使用 ASCII 的線段輸出,不要使用復雜的編碼 (再某些環境下很有用) -m :同時輸出該設備在 /dev 下面的權限數據 (rwx 的數據) -p :列出該設備的完整文件名!而不是僅列出最后的名字而已。 -t :列出該磁盤設備的詳細數據,包括磁盤陣列機制、預讀寫的數據量大小等[root@study ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 8:0 0 200G 0 disk ├─vda1 8:1 0 2G 0 part /boot ├─vda2 8:2 0 58G 0 part │ ├─rhel-root 253:0 0 191G 0 lvm / │ └─rhel-swap 253:1 0 6G 0 lvm └─vda3 8:3 0 140G 0 part└─rhel-root 253:0 0 191G 0 lvm /

    從上面的輸出我們可以很清楚的看到,目前的系統主要有個 sr0 以及一個 vda 的設備,而 vda 的設備下面又有三個分區, 其中 vda3 甚至還有因為 LVM 而產生的文件系統。

    輸出的信息有:

    • NAME:就是設備的文件名,會省略/dev等前導目錄!
    • MAJ:MIN:其實核心識別的設備都是通過這兩個代碼來熟悉的!分別是主要:次要設備代碼!
    • RM:是否為可卸載設備 (removable device),如光盤、USB 磁盤等等
    • SIZE:容量
    • RO:是否為只讀設備的意思
    • TYPE:是磁盤 (disk)、分區 (partition) 還是只讀存儲器 (rom) 等輸出
    • MOUTPOINT:掛載點

    blkid:

    列出設備的 UUID(universally unique identifier) 等參數

    UUID是全局唯一表示符,是Linux給與設備的獨一無二的標識符,這個標識符就可以拿來掛載或是使用這個設備或文件系統

    ?

    parted:

    parted:列出磁盤的分區表類型與分區信息

    parted device_name print

    Model:磁盤的模塊名稱(廠商)
    Disk:磁盤總容量
    Sector size (logical/physical):磁盤的每個邏輯/物理扇區容量
    Partition:分區表格式

    ?

    磁盤分區:gdisk/fdisk:

    磁盤分區要注意的是:MBR分區表請使用fdisk分區,GPT請使用gdisk分區,這個搞錯會導致分區失敗。

    gdisk:

    gdisk 設備名稱

    d:刪除一個分區
    n:增加一個分區
    p:打印出分區表
    q:不保存分區直接離開gdisk
    w:保存分區操作后離開gdisk

    你可以隨便玩gdisk,只要最后按q離開就不會生效

    現在分區主要以扇區為最小單位

    上面的各項的意義是:

    • Number:分區編號,1號指的就是/dev/sda1這樣計算
    • Start:每一個分區的開始扇區號碼位置
    • End:每一個分區的結束扇區號碼位置,與start之間可以算出分區的總容量
    • Size:就是分區的容量
    • Code:在分區內的可能的文件系統類型,Linux為8300,swap為8200,這只是個提示
    • Name:文件系統的名稱等

    從上表我們可以發現:

    • 整個磁盤還可以進行額外的劃分,因為最大扇區為83886080,但只用到65026047號而已
    • 分區的設計中,新分區通常選用上一個分區的結束扇區號碼加1作為起始扇區號碼

    另外注意:

    • 這個gdisk命令只有root可以執行
    • 使用的設備文件名請不要加上數字,因為磁盤分區是針對整個磁盤設備而不是某個分區(不能用/dev/sda1,要用磁盤/dev/sda)

    ?新增分區示例操作:

    我們要來做如下分區:

    • 1GB的xfs文件系統(Linux)
    • 1GB的vfat文件系統(Windows)
    • 0.5GB的swap(Linux swap)? (這個分區等一下會被刪除)

    在Last sector中絕對不要回車,否則就是把磁盤剩余所有扇區都使用了,這個我們僅要1G(輸入+1G系統會自動計算最接近你需要容量的扇區號碼)

    按照上面的方法分出所需要求,最后就是這樣:

    很nice,文件系統的ID一般來說,Linux大概就是8200、8300、8e00等三種格式,Windows幾乎都用0700

    最后我們按w寫入新的分區,會出現警告,這是因為這塊磁盤現在正在使用中,因此系統無法立即加載新的分區表

    可以看到,還沒有sda4、sda5、sda6

    這時我們可以通過兩種方式來處理,一種是重新啟動,一種是通過partprobe這個命令來處理

    partprobe:更新Linux內核信息

    partprobe [-s] //不加-s,那屏幕不顯示信息

    接下來我們來刪除分區,刪除sda6(Linux swap)

    這個刪除很簡單,直接gdisk /dev/sda后,輸入d,然后輸入6,,最后w寫入即可,別忘了出來之后用partprobe更新內核信息,然后lsblk一看,就會發現sda6消失了

    千萬不要去處理正在使用中的分區

    ?磁盤格式化(創建文件系統):

    分區完畢后自然就是去進行文件系統的格式化。格式化的命令非常簡單,那就是【make filesystem,mkfs】這個命令。這個命令是個綜合命令,他會去調用正確的文件系統格式化工具軟件。

    “格式化”其實應該稱為“創建文件系統 (make filesystem)”才對,所以使用的指令是 mkfs

    創建的 xfs 文件系統-mkfs.xfs:

    mkfs.xfs [-b bsize] [-d parms] [-i parms] [-l parms] [-L label] [-f] \[-r parms] 設備名稱 選項與參數: 關于單位:下面只要談到“數值”時,沒有加單位則為 Bytes 值,#可以用 k,m,g,t,p (小寫)等來解釋#比較特殊的是 s 這個單位,它指的是 sector 的“個數”喔! -b :后面接的是區塊量,可由 512 到 64k,不過最大容量限制為 Linux 的 4k 喔! -d :后面接的是重要的 data section 的相關參數值,主要的值有:agcount=數值 :設置需要幾個儲存群組的意思(AG),通常與 CPU 有關agsize=數值 :每個 AG 設置為多少容量的意思,通常 agcount/agsize#只選一個設置即可file :指的是“格式化的設備是個文件而不是個設備”的意思!#(例如虛擬磁盤)size=數值 :data section 的容量,亦即你可以不將全部的設備容#量用完的意思su=數值 :當有 RAID 時,那個stripe數值的意思,與下面的 w搭配使用sw=數值 :當有 RAID 時,用于儲存數據的磁盤數量(須扣除備份碟與備用碟)sunit=數值 :與su相當,不過單位使用的是“幾個sector(512Bytes大小)”的意思swidth=數值 :就是 su*sw 的數值,但是以“幾個 sector(512Bytes大小)”來設置 -f :如果設備內已經有文件系統,則需要使用這個 -f 來強制格式化才行! -i :與 inode 有較相關的設置,主要的設置值有:size=數值 :最小是 256Bytes 最大是 2k,一般保留 256 就足夠使用了!internal=[0|1]:log 設備是否為內置?默認為 1 內置,如果要用外部設備#,使用下面設置logdev=device :log 設備為后面接的那個設備上面的意思,#需設置 internal=0 才可!size=數值 :指定這塊登錄區的容量,#通常最小得要有 512 個 block,大約 2M 以上才行! -L :后面接這個文件系統的標頭名稱Label name的意思! -r :指定realtime section的相關設置值,常見的有:extsize=數值 :就是那個重要的 extent 數值,一般不須設置,但有 RAID 時,最好設置與 swidth 的數值相同較佳!最小為 4K 最大為 1G 。

    沒有特殊需求的話,直接mkfs.xfs /dev/sda4即可,非常快就會創建一個 xfs文件系統

    XFS 文件系統 for RAID 性能優化 (Optional):

    磁盤陣列是多顆磁盤組成一顆大磁盤的意思, 利用同步寫入到這些磁盤的技術,不但可以加快讀寫速度,還可以讓某一顆磁盤壞掉時,整個文件系統還是可以持續運行的狀態!那就是所謂的容錯。

    基本上,磁盤陣列 (RAID) 就是通過將文件先細分為數個小型的分區區塊 (stripe) 之后,然后將眾多的 stripes 分別放到磁盤陣列里面的所有磁盤, 所以一個文件是被同時寫入到多個磁盤去,當然性能會好一些。為了文件的保全性,所以在這些磁盤里面,會保留數個(與磁盤陣列的規劃有關) 備份磁盤 (parity disk), 以及可能會保留一個以上的備用磁盤(spare disk),這些區塊基本上會占用掉磁盤陣列的總容量,不過對于數據的保全會比較有保障!

    那個分區區塊 stripe 的數值大多介于 4K 到 1M 之間,這與你的磁盤陣列卡支持的項目有關。stripe 與你的文件數據容量以及性能相關性較高。 當你的系統大多是大型文件時,一般建議stripe 可以設置大一些,這樣磁盤陣列讀/寫的頻率會降低,性能會提升。如果是用于系統,那么小文件比較多的情況下, stripe 建議大約在 64K 左右可能會有較佳的性能。不過,還是都須要經過測試啦!完全是 case by case 的情況。

    文件系統的讀寫要能夠有最優化,最好能夠搭配磁盤陣列的參數來設計,這樣性能才能夠起來!也就是說,你可以先在文件系統就將 stripe 規劃好, 那交給 RAID 去存取時,它就無須重復進行文件的 stripe 過程,性能當然會更好!那格式化時,最優化性能與什么咚咚有關呢?我們來假設個環境好了:

    我有兩個線程的 CPU 數量,所以 agcount 最好指定為 2

    當初設置 RAID 的 stripe 指定為 256K 這么大,因此 su 最好設置為 256k

    設置的磁盤陣列有 8 顆,因為是 RAID5 的設置,所以有一個 parity (備份碟),因此指定 sw 為 7

    由上述的數據中,我們可以發現數據寬度 (swidth) 應該就是 256K*7 得到 1792K,可以指定 extsize 為 1792k

    ext4文件系統mkfs.ext4:

    如果想要格式化為ext4的傳統Linux文件系統的話,可以使用如下:

    mkfs.ext4 [-b size] [-L label] 設備名稱 選項與參數: -b :設置 block 的大小,有 1K, 2K, 4K 的容量, -L :后面接這個設備的標頭名稱。

    其他文件系統mkfs:

    mkfs其實是個綜合命令,使用mkfs -t xfs時,他就會去找mkfs.xfs的相關參數給我們使用。如果想要知道系統還支持哪種文件系統的格式化功能,輸入mkfs再按兩次Tab即可

    文件系統檢驗:

    xfs_repair處理XFS文件系統

    xfs_repair [-fnd] 設備名稱 -f:后面的設備其實是個文件而不是實體設備 -n:單純檢查并不修改文件系統的任何數據 -d:通常用在單人維護模式下面,針對根目錄(/)#進行檢查與修復的操作,很危險,不要隨便用

    xfs_repair可以檢查/修復文件系統,不過,因為修復文件系統是個龐大的任務,因此,修復時該文件系統不能被掛載。所以,檢查與修復/dev/sda4沒啥問題,但是修復已被掛載的文件系統時,就會出現問題,卸載后再處理即可。

    而根目錄無法被卸載,那根目錄有問題怎么辦?進入單人維護模式,加入d參數即可

    fsck.ext4處理ext4文件系統

    fsck是個綜合命令,針對而ext4的話,用fsck.ext4處理即可

    fsck.ext4 [-pf] [-b 超級區塊] 設備名稱 -p:當文件系統在修復時,若要回復Y的操作時,自動回復Y -f:強制檢查,一般來說,如果fsck沒有發現任何unclean的標識,#不會主動進入詳細檢查的,若您想要強制fsck詳細檢查,就要-f -D:針對文件系統下的目錄進行最佳化配置 -b:后面接超級區塊的位置,一般這個選項用不到,但是若果你#的超級區塊做損壞時,通過這個參數即可利用文件系統內備#份的超級區塊來嘗試恢復,一般來說,超級區塊備份在如下:#1K區塊放在8193,2K區塊放在16384,4K區塊放在32768

    我們可以利用dumpe2fs -h /dev/sda5找到Blocks per group的信息,即可知道超級區塊的位置,比如是32768,然后fsck.ext4 -b 32768 /dev/sda5即可檢查文件系統超級區塊問題

    注意,通常只有root且你的文件系統有問題的時候才使用此命令,否則正常情況下使用此命令,可能會造成對系統的危害。

    被檢查的硬盤分區務必是卸載狀態

    文件系統的掛載與卸載:

    每次進行掛載前,要確定幾件事情:

    • 單一文件系統不應該被重復掛載在不同的掛載點(目錄)上
    • 單一目錄不應該重復掛載多個文件系統
    • 要作為掛載點的目錄,理論上應該是空目錄才行

    如果你要掛載的目錄里面并不是空的,那么掛載了文件系統之后,原目錄下的東西就會暫時消失
    (卸載后才會再次現身)

    mount -a mount [-l] mount [-t 文件系統] LABEL='' 掛載點 mount [-t 文件系統] UUID='' 掛載點 mount [-t 文件系統] 設備文件名 掛載點 -a :依照配置文件 [/etc/fstab]的數據將所有未掛載的磁盤都掛載上來 -l :單純的輸入 mount 會顯示目前掛載的信息。#加上 -l 可增列 Label 名稱! -t :可以加上文件系統種類來指定欲掛載的類型。#常見的 Linux 支持類型有:xfs, ext3, ext4,reiserfs,#vfat, iso9660(光盤格式), nfs, cifs, smbfs (后三種為網絡文件系統類型) -n :在默認的情況下,系統會將實際掛載的情況實時寫入 /etc/mtab 中,#以利其他程序的運行。但在某些情況下(例如單人維護模式)為了避#免問題會刻意不寫入。此時就得要使用 -n 選項。 -o :后面可以接一些掛載時額外加上的參數!比方說帳號、密碼、讀寫權限等:async, sync: 此文件系統是否使用同步寫入(sync)或非同步(async)的#內存機制,請參考[文件系統運行方式]。默認為 async。atime,noatime: 是否修訂文件的讀取時間(atime)。#為了性能,某些時刻可使用 noatimero, rw: 掛載文件系統成為只讀(ro) 或可讀寫(rw)auto, noauto: 允許此文件系統被mount -a 自動掛載(auto)dev, nodev: 是否允許此文件系統上,可創建設備文件? dev 為可允許suid, nosuid: 是否允許此文件系統含有 suid/sgid 的文件格式?exec, noexec: 是否允許此文件系統上擁有可執行 binary 文件?user, nouser: 是否允許此文件系統讓任何使用者執行mount?一般來說,mount 僅有 root 可以進行,但下達 user 參數,則可讓一般 user 也能夠對此分區進行 mount 。defaults: 默認值為:rw, suid, dev, exec, auto, nouser, and asyncremount: 重新掛載,這在系統出錯,或重新更新參數時,很有用

    centOS現在的版本基本上不需要-t,系統會自動分析最恰當的文件系統來嘗試掛載你需要的設備,系統的一句就是分析超級區塊搭配Linux自己的驅動程序去測試掛載,測試成功,就立刻自動使用該類型的文件系統掛載起來。

    • /etc/filesystems:系統指定的測試掛載文件系統類型的優先級
    • /proc/filesystems:Linux系統已經加載的文件系統類型

    Linux支持的文件系統驅動程序寫在如下目錄:

    • /lib/modules/$ (uname -r) /kernel/fs/

    例如ext4的驅動程序就寫在【/lib/modules/$ (uname -r) /kernel/ext4/】目錄下

    掛載 xfs/ext4/vfat 等文件系統:

    掛載CD或DVD光盤:

    光盤一掛載之后就無法退出光盤了,除非你將它卸載才能夠退出

    盡量使用UUID去進行掛載,因為它一般不會變動,而一塊磁盤到了別人的電腦就可能不是sda這個名字了

    因為是光盤,所以磁盤使用率達到了100%,所以你無法直接寫入任何數據到光盤中。

    此外,如果你使用的是圖形界面,那么系統會自動幫你掛載這個光盤到/media目錄。也可以不卸載就直接退出(但是命令行不能這樣

    掛載vfat中文移動磁盤(USB磁盤):

    我們來掛載vfat格式的磁盤

    mount -o codepage=950,iocharset=utf8 UUID="35BC-6D6B" /data/usb

    因為是中文文件名的數據,那么可以在掛載時指定掛載文件系統的所使用的的語系。在man mount找到vfat文件格式當中可以使用codepage來處理,中文語系的代碼是950,另外,如果想要指定中文是Unicode還是Big5,就要指定iocharset二選一了。

    重新掛載根目錄與掛載不特定目錄:

    整個目錄樹最重要的地方就是根目錄,根目錄不可能被卸載,如果你的掛載參數要改變或是根目錄出現【只讀】狀態,如何重新掛載,最可能的處理方式就是重新啟動(reboot),不過你也可以這樣:

    #將/重新掛載,并加入參數為rw與auto mount -o remount,rw,auto /

    重點是那個-o remountde,xx的選項與參數。要重新掛載時,這是個非常重要的機制。尤其是當你進入單人維護模式下的時候,你的根目錄常會被系統掛載為只讀。

    另外,我們也可以利用mount來將某個目錄掛載到另外一個目錄。這并不是掛載文件系統,而是額外掛載某個目錄的方法。雖然下面的方法也可以用符號鏈接來實現,不過某些不支持符號鏈接的程序運行中,就用到這個方法了

    兩個目錄鏈接在同一個inode,這就是mount --bind的功能,所以從此進入/data/var也就是進入/var

    umount(將設備文件卸載):

    -umount [-fn] 設備文件名或掛載點 -f:強制卸載,可用在類似網絡系統(NFS)無法讀取到的情況下 -l:立刻卸載文件系統,比-f還強 -n:不更新/etc/mtab情況下卸載

    就是直接將已經掛載的文件系統卸載,卸載之后,可以使用df或mount看看是否還存在于目錄中。卸載的方式,可以輸入設備文件名或掛載點,都行。

    卸載的基本原則就是那塊磁盤不是正在被使用,你在那個磁盤目錄下,就不能卸載它,除非你離開目錄

    磁盤/文件系統參數自定義:

    mknod:

    Linux里萬物皆文件,那么文件是如何代表設備的,就是靠major(主要)和minor(次要)數值來替代

    上面的8就是主要設備代碼(major),而0~5就是次要設備代碼(minor)。我們的Linux內核支持的設備文件數據就是通過這兩個數值來決定的。

    一般我們不需要手動建立設備文件。不過某些情況下面我們可能還是要手動處理設備文件,例如在某些服務被chroot到特定目錄下時,就需要這樣做了

    mknod 設備文件名 [bcp] [Major] [Minor] b:設置設備名稱成為一個外接存儲設備文件,例如磁盤等 c:設置設備名稱成為一個外接輸入設備文件,例如鼠標等 p:設置設備名稱成為一個FIFO文件 Major:主要設備碼 Minor:次要設備碼

    xfs_admin修改XFS文件系統的UUID與Label name:

    如果你當初格式化的時候忘記加入了標頭名稱,后來想再加入,無需格式化,直接使用xfs_admin即可,它還可以設置UUID

    該命令只對xfs文件系統類型有效

    xfs_admin [-lu] [-L label] [-U uuid] 設備名 -l:列出這個設備的label name -u:列出這個設備的UUID -L:設置這個設備的Label name -U:設置這個設備的UUID

    tune2fs修改ext4的label name與UUID

    tune2fs [-l] [-L Label] [-U uuid] 設備文件名 -l:類似dumpe2fs,將superblock內的數據讀出來 -L:修改Label name -U:修改UUID

    設置啟動掛載(fstab與mtab):

    可不可以在啟動時就將我要的文件系統掛載好呢?這樣我就不用每次進入Linux都要掛載一次。當然可以,直接到/etc/fstab里面去修改就行,不過,系統掛載有一些限制:

    • 根目錄/是必須掛載的,而且一定要先于其他掛載點被掛載進來
    • 其他掛載點必須為已建立的目錄,可任意指定,但一定要遵循必須得系統目錄架構原則(FHS)
    • 所有掛載點在同一時間內,只能掛載一次
    • 所有的硬盤在同一時間內,只能掛載一次
    • 如若進行卸載,您必須將工作目錄轉移到掛載點之外

    下面那6個字段分別是

    [設備/UUID等] [掛載點] [文件系統] [文件系統參數] [dump] [fsck]

    設備/UUID等:

    這個字段可以填寫的數據主要有三個項目:

    • 文件系統或磁盤的設備文件名,如/dev/sda2等
    • 文件系統的UUID名稱(UUID=?)
    • 文件系統的LABEL名稱(LABEL=?)

    自己編寫的時候寫哪個都行

    掛載點:

    一定是目錄

    磁盤分區的文件系統:

    在手動掛載時可以讓系統自動測試掛載,但在這個文件當中我們必須要手動寫入文件系統才行,包括:xfs、ext4、fab、reiserf、nfs等

    文件系統參數:

    mount那里的那一幫子

    參數內容意義
    async/sync
    異步/同步
    配置磁盤是否以異步方式運行!默認為 async(效能較佳)
    auto/noauto
    自動/非自動
    當下達 mount -a 時,此文件系統是否會被主動測試掛載。默認為 auto。
    rw/ro
    可擦寫/只讀
    讓該分割槽以可擦寫或者是只讀的型態掛載上來,如果你想要分享的數據是不給用戶隨意變更的, 這里也能夠配置為只讀。則不論在此文件系統的文件是否配置 w 權限,都無法寫入喔!
    exec/noexec
    可運行/不可運行
    限制在此文件系統內是否可以進行『運行』的工作?如果是純粹用來儲存數據的, 那么可以配置為 noexec 會比較安全,相對的,會比較麻煩!
    user/nouser
    允許/不允許使用者掛載
    是否允許用戶使用 mount 命令來掛載呢?一般而言,我們當然不希望一般身份的 user 能使用 mount 啰,因為太不安全了,因此這里應該要配置為 nouser 啰!
    suid/nosuid
    具有/不具有 suid 權限
    該文件系統是否允許 SUID 的存在?如果不是運行文件放置目錄,也可以配置為 nosuid 來取消這個功能!
    defaults同時具有?rw, suid, dev, exec, auto, nouser, async?等參數。 基本上,默認情況使用 defaults 配置即可!

    能否被dump備份使用:

    dump是一個用來做備份的命令,不過現在有太多備份方案,這個項目可以不用理會,填0就好

    是否以fsck檢驗扇區

    早期啟動流程中,會有一段時間去檢驗本機的文件系統,看看文件系統是否完整(clean),不過這個階段主要是通過fsck去完成,我們現在用的xfs文件系統就沒有辦法適用,因為xfs會自己自行檢驗,填0即可

    ?

    ?
    /etc/fstab是啟動時的配置文件,不過,實際文件系統的掛載是記錄到 /etc/mtab 和 /proc/mounts 這兩個文件中的。每次我們在修改文件系統的掛載時,也會同時修改這兩個文件。但是,萬一發生你在/etc/fstab輸入的數據有誤,導致無法順利啟動成功,而進入單人模式中,那時候的/可是只讀的狀態,當然你無法修改/etc/fstab,也無法更新/etc/mtab,怎么辦?沒關系,可以用這招:

    mount -n -o remount,rw /

    特殊設備loop掛載(鏡像文件不刻錄就掛載使用)

    如果有光盤鏡像文件,或是使用文件作為磁盤的方式時,那就要使用特別的方法來將他掛載起來,不需要刻錄

    掛載CD/DVD鏡像文件:

    想像一下如果今天我們從中科大鏡像站下載了 Linux 或者是其他所需CD/DVD的鏡像文件后, 難道一定需要刻錄成為光盤才能夠使用該文件里面的數據嗎?當然不是啦!我們可以通過 loop 設備來掛載的!

    [root@study ~]# ll -h /tmp/CentOS-7.0-1406-x86_64-DVD.iso -rw-r--r--. 1 root root 3.9G Jul 7 2014 /tmp/CentOS-7.0-1406-x86_64-DVD.iso # 看到上面的結果吧!這個文件就是鏡像文件,文件非常的大吧! [root@study ~]# mkdir /data/centos_dvd [root@study ~]# mount -o loop /tmp/CentOS-7.0-1406-x86_64-DVD.iso /data/centos_dvd [root@study ~]# df /data/centos_dvd Filesystem 1K-blocks Used Available Use% Mounted on /dev/loop0 4050860 4050860 0 100% /data/centos_dvd # 就是這個項目! .iso 鏡像文件內的所有數據可以在 /data/centos_dvd 看到! [root@study ~]# ll /data/centos_dvd total 607 -rw-r--r--. 1 500 502 14 Jul 5 2014 CentOS_BuildTag &lt;==瞧!就是DVD的內容啊! drwxr-xr-x. 3 500 502 2048 Jul 4 2014 EFI -rw-r--r--. 1 500 502 611 Jul 5 2014 EULA -rw-r--r--. 1 500 502 18009 Jul 5 2014 GPL drwxr-xr-x. 3 500 502 2048 Jul 4 2014 images .....(下面省略)..... [root@study ~]# umount /data/centos_dvd/ # 測試完成!記得將數據給他卸載!

    非常方便吧!如此一來我們不需要將這個文件刻錄成為光盤或者是 DVD 就能夠讀取內部的數據了! 換句話說,你也可以在這個文件內“動手腳”去修改文件的!這也是為什么很多鏡像文件提供后,還得要提供驗證碼 (MD5) 給使用者確認該鏡像文件沒有問題!

    建立大文件以制作loop設備文件:

    想一想,既然能夠掛載 DVD 的鏡像文件,那么我能不能制作出一個大文件,然后將這個文件格式化后掛載呢? 好問題!這是個有趣的動作!而且還能夠幫助我們解決很多系統的分區不良的情況呢!舉例來說,如果當初在分區時, 你只有分區出一個根目錄,假設你已經沒有多余的容量可以進行額外的分區的!偏偏根目錄的容量還很大! 此時你就能夠制作出一個大文件,然后將這個文件掛載!如此一來感覺上你就多了一個分區啰!用途非常的廣泛啦!

    下面我們在 /srv 下創建一個 512MB 左右的大文件,然后將這個大文件格式化并且實際掛載來玩一玩!

    • 建立大型文件
    [root@study ~]# dd if=/dev/zero of=/srv/loopdev bs=1M count=512 512+0 records in <==讀入 512 筆數據 512+0 records out <==輸出 512 筆數據 536870912 Bytes (537 MB) copied, 12.3484 seconds, 43.5 MB/s # 這個指令的簡單意義如下: # if 是 input file ,輸入文件。那個 /dev/zero 是會一直輸出 0 的設備! # of 是 output file ,將一堆零寫入到后面接的文件中。 # bs 是每個 block 大小,就像文件系統那樣的 block 意義; # count 則是總共幾個 bs 的意思。所以 bs*count 就是這個文件的容量了! [root@study ~]# ll -h /srv/loopdev -rw-r--r--. 1 root root 512M Jun 25 19:46 /srv/loopdev

    dd 就好像在疊磚塊一樣,將 512 塊,每塊 1MB 的磚塊堆疊成為一個大文件 (/srv/loopdev)!

    • 大型文件的格式化

    默認 xfs 不能夠格式化文件的,所以要格式化文件得要加入特別的參數(-f:強制格式化)才行

    [root@study ~]# mkfs.xfs -f /srv/loopdev [root@study ~]# blkid /srv/loopdev /srv/loopdev: UUID="7dd97bd2-4446-48fd-9d23-a8b03ffdd5ee" TYPE="xfs"

    • 掛載

    利用mount的-o參數來掛載

    [root@study ~]# mount -o loop UUID="7dd97bd2-4446-48fd-9d23-a8b03ffdd5ee" /mnt [root@study ~]# df /mnt Filesystem 1K-blocks Used Available Use% Mounted on /dev/loop0 520876 26372 494504 6% /mnt

    通過這個簡單的方法,感覺上你就可以在原本的分區在不更動原有的環境下制作出你想要的分區就是了! 這東西很好用的!尤其是想要玩 Linux 上面的“虛擬機”的話, 也就是以一部Linux 主機再切割成為數個獨立的主機系統時,類似 VMware 這類的軟件, 在 Linux 上使用xen 這個軟件,他就可以配合這種 loop device 的文件類型來進行根目錄的掛載,真的非常有用的喔! ^^

    比較特別的是,CentOS 7.x 越來越聰明了,現在你不需要下達 -o loop 這個選項與參數,它同樣可以被系統掛上來! 連直接輸入 blkid 都會列出這個文件內部的文件系統耶!相當有趣!不過,為了考慮向下兼容性,鳥哥還是建議你加上 loop 比較妥當喔! 現在,請將這個文件系統永遠的自動掛載起來吧!

    永久自動掛載:

    [root@study ~]# nano /etc/fstab /srv/loopdev /data/file xfs defaults**,loop** 0 0 # 畢竟系統大多僅查詢 block device 去找出 UUID 而已,因此使用文件創建的 filesystem, # 最好還是使用原本的文件名來處理,應該比較不容易出現錯誤訊息的! [root@study ~]# umount /mnt [root@study ~]# mkdir /data/file [root@study ~]# mount -a [root@study ~]# df /data/file Filesystem 1K-blocks Used Available Use% Mounted on /dev/loop0 520876 26372 494504 6% /data/file

    內存交換分區(swap)之創建:

    我們知道 CPU 所讀取的數據都來自于內存, 那當內存不足的時候,為了讓后續的程序可以順利的運行,因此在內存中暫不使用的程序與數據就會被挪到 swap 中了。 此時內存就會空出來給需要執行的程序載入。由于 swap 是用磁盤來暫時放置內存中的信息,所以用到 swap 時,你的主機磁盤燈就會開始閃個不停啊!

    使用物理分區創建內存交換分區:

    1. 分區:先使用 gdisk 在你的磁盤中分區出一個分區給系統作為 swap 。由于 Linux 的gdisk 默認會將分區的 ID 設置為 Linux 的文件系統,所以你可能還得要設置一下 system ID 就是了。

    2. 格式化:利用創建 swap 格式的“mkswap 設備文件名”就能夠格式化該分區成為 swap 格式

    3. 使用:最后將該 swap 設備啟動,方法為:“swapon 設備文件名”。

    4. 觀察:最終通過 free 與 swapon -s 這個指令來觀察一下內存的用量吧!

    ?

    首先我們用gdisk進行分區,Hex code寫8200

    w退出保存后,用lsblk可以看見我們的新分區

    用mkswap 格式化該分區為swap格式

    開始觀察看看:

    最后寫入配置文件,因為是swap,所以沒有掛載點

    使用文件創建內存交換文件:

    如果是在實體分區無法支持的環境下,此時前一小節提到的 loop 設備創建方法就派的上用場啦! 與實體分區不一樣的,這個方法只是利用 dd 去創建一個大文件而已。多說無益,我們就再通過文件創建的方法創建一個 128 MB 的內存交換空間吧

    用dd新增大文件

    使用mkswap將/tmp/swap格式化為內存交換文件的文件格式

    這個命令寫錯字符將可能導致您的文件系統掛掉

    使用swapon來將/tmp/swap啟動

    接下來寫入/etc/fstab,注意,這里是個大文件,系統僅會查詢區塊設備(block device)不會查詢文件,所以千萬不能用UUID,不然系統會查不到

    接下來用swapoff /tmp/swap? /dev/sda6 來關閉示范的兩個swap分區,再用swapon -a全部開啟,如果fstab設置無誤,這些就全部開啟

    說實話,swap 在目前的桌面電腦來講,存在的意義已經不大了!這是因為目前的 x86 主機所含的內存實在都太大了 (一般入門級至少也都有 4GB 了),所以,我們的 Linux 系統大概都用不到 swap 這個玩意兒的。不過, 如果是針對服務器或者是工作站這些常年上線的系統來說的話,那么,無論如何,swap 還是需要創建的。

    因為 swap 主要的功能是當實體內存不夠時,則某些在內存當中所占的程序會暫時被移動到swap 當中,讓實體內存可以被需要的程序來使用。另外,如果你的主機支持電源管理模式,也就是說,你的 Linux 主機系統可以進入“休眠”模式的話,那么, 運行當中的程序狀態則會被紀錄到 swap 去,以作為“喚醒”主機的狀態依據! 另外,有某些程序在運行時,本來就會利用swap 的特性來存放一些數據段, 所以, swap 來是需要創建的!只是不需要太大!

    文件系統的特殊觀察與操作:

    磁盤空間浪費問題:

    我們在前面的 EXT2 data block 介紹中談到了一個 block 只能放置一個文件, 因此太多小文件將會浪費非常多的磁盤容量。但你有沒有注意到,整個文件系統中包括 superblock, inodetable 與其他中介數據等其實都會浪費磁盤容量喔!所以當我們在 /dev/vda4, /dev/vda5 創建起 xfs/ext4 文件系統時, 一掛載就立刻有很多容量被用掉了!

    另外,不知道你有沒有發現到,當你使用 ls -l 去查詢某個目錄下的數據時,第一行都會出現一個“total”的字樣! 那是啥東西?其實那就是該目錄下的所有數據所耗用的實際 block 數量 *block 大小的值。 我們可以通過 ll -s 來觀察看看上述的意義:

    [root@study ~]# ll -sh total 12K 4.0K -rw-------. 1 root root 1.8K May 4 17:57 anaconda-ks.cfg 4.0K -rw-r--r--. 2 root root 451 Jun 10 2014 crontab 0 lrwxrwxrwx. 1 root root 12 Jun 23 22:31 crontab2 -&gt; /etc/crontab 4.0K -rw-r--r--. 1 root root 1.9K May 4 18:01 initial-setup-ks.cfg 0 -rw-r--r--. 1 root root 0 Jun 16 01:11 test1 0 drwxr-xr-x. 2 root root 6 Jun 16 01:11 test2 0 -rw-rw-r--. 1 root root 0 Jun 16 01:12 test3 0 drwxrwxr-x. 2 root root 6 Jun 16 01:12 test4

    從上面的特殊字體部分,那就是每個文件所使用掉 block 的容量!舉例來說,那個 crontab 雖然僅有 451Bytes , 不過他卻占用了整個 block (每個 block 為 4K),所以將所有的文件的所有的 block 加總就得到 12KBytes 那個數值了。 如果計算每個文件實際容量的加總結果,其實只有不到 5K 而已

    利用GNU的parted進行分區操作:

    雖然你可以使用 gdisk/fdisk 很快速的將你的分區切割妥當,不過 gdisk 主要針對 GPT 而fdisk 主要支持 MBR ,對 GPT 的支持還不夠! 所以使用不同的分區時,得要先查詢到正確的分區表才能用適合的指令,好麻煩!有沒有同時支持的指令呢?有的!那就是 parted 。

    [root@study ~]# parted [設備] [指令 [參數]] 新增分區:mkpart [primary|logical|Extended] [ext4|vfat|xfs] 開始 結束 顯示分區:print 刪除分區:rm [partition] [root@study ~]# parted /dev/sda print Model: Virtio Block Device (virtblk) <==磁盤接口與型號 Disk /dev/sda: 42.9GB <==磁盤文件名與容量 Sector size (logical/physical): 512B/512B <==每個扇區的大小 Partition Table: gpt <==是 GPT 還是 MBR 分區 Disk Flags: pmbr_boot Number Start End Size File system Name Flags 1 1049kB 3146kB 2097kB bios_grub 2 3146kB 1077MB 1074MB xfs 3 1077MB 33.3GB 32.2GB lvm 4 33.3GB 34.4GB 1074MB xfs Linux filesystem 5 34.4GB 35.4GB 1074MB ext4 Microsoft basic data 6 35.4GB 36.0GB 537MB linux-swap(v1) Linux swap

    上面是最簡單的 parted 指令功能簡介,你可以使用“ man parted ”,或者是“ parted /dev/sda help mkpart ”去查詢更詳細的數據。比較有趣的地方在于分區表的輸出。我們將上述的分區表示意拆成六部分來說明:

    1. Number:這個就是分區的號碼啦!舉例來說,1號代表的是 /dev/sda1 的意思;
    2. Start:分區的起始位置在這顆磁盤的多少 MB 處?有趣吧!他以容量作為單位喔!
    3. End:此分區的結束位置在這顆磁盤的多少 MB 處?
    4. Size:由上述兩者的分析,得到這個分區有多少容量;
    5. File system:分析可能的文件系統類型為何的意思!
    6. Name:就如同 gdisk 的 System ID 之意。

    不過 start 與 end 的單位竟然不一致!好煩~如果你想要固定單位,例如都用 MB 顯示的話,可以這樣做:

    parted /dev/sda unit mb print

    如果你想要將原本的 MBR 改成 GPT 分區表,或原本的 GPT 分區表改成 MBR 分區表,也能使用 parted ! 但是請不要使用 sda 來測試!因為分區表格式不能轉換!因此進行下面的測試后,在該磁盤的系統應該是會損毀的! 所以我拿一顆沒有使用的U盤來測試,所以文件名會變成 /dev/vda 喔!再講一次!不要惡搞喔!

    下面操作危險,無法復原!

    [root@study ~]# parted /dev/vda print Model: ATA QEMU HARDDISK (scsi) Disk /dev/vda: 2148MB Sector size (logical/physical): 512B/512B Partition Table: msdos # 確實顯示的是 MBR 的 msdos 格式喔! [root@study ~]# parted /dev/vda mklabel gpt Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? y [root@study ~]# parted /dev/vda print # 你應該就會看到變成 gpt 的模樣!只是...后續的分區就全部都死掉了!

    接下來我們嘗試來創建一個全新的分區吧!再次的創建一個 512MB 的分區來格式化為 vfat,且掛載于 /data/win 喔!

    [root@study ~]# parted /dev/sda print .....(前面省略)..... Number Start End Size File system Name Flags 7 36.0GB 36.5GB 522MB primary [root@study ~]# partprobe [root@study ~]# lsblk /dev/sda7 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda7 252:7 0 498M 0 part # 要確定它是真的存在才行! [root@study ~]# mkfs -t vfat /dev/sda7 [root@study ~]# blkid /dev/sda7 /dev/sda7: SEC_TYPE="msdos" UUID="6032-BF38" TYPE="vfat" [root@study ~]# nano /etc/fstab UUID="6032-BF38" /data/win vfat defaults 0 0 [root@study ~]# mkdir /data/win [root@study ~]# mount -a [root@study ~]# df /data/win Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda7 509672 0 509672 0% /data/win

    事實上,你應該使用 gdisk 來處理 GPT 分區就好了!不過,某些特殊時刻,例如你要自己寫一只腳本,讓你的分區全部一口氣創建, 不需要 gdisk 一條一條指令去進行時,那么 parted就非常有效果了!因為他可以直接進行 partition 而不需要跟用戶互動!這就是它的最大好處! 建議至少你要操作過幾次 parted ,知道這家伙的用途!未來有需要再回來查!或使用 man parted 去處理喔!


    這一章終于過完了,博客都兩萬字了,呼~下回再見!

    ?

    ?

    ?

    ?

    博客:is-hash.com

    商業轉載 請聯系作者獲得授權,非商業轉載 請標明出處,謝謝

    ?

    總結

    以上是生活随笔為你收集整理的Linux的基本学习(四)——磁盘与文件系统管理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    99综合影院在线 | 日韩videos| 99热官网 | 在线免费视频你懂的 | 99精品国产aⅴ | 99久久99久久免费精品蜜臀 | 日韩免费中文 | 国产精品系列在线观看 | 久久久综合色 | 国模一区二区三区四区 | 色丁香久久| 国产91精品久久久久 | 97超碰人人澡人人爱 | 91在线视频在线观看 | 很黄很污的视频网站 | 开心丁香婷婷深爱五月 | 欧美激情视频一区二区三区免费 | 天天色天天色天天色 | 青青久视频 | 国产拍在线| 超碰在线成人 | 中字幕视频在线永久在线观看免费 | 精品久久久久久久久久久久久久久久久久 | av丝袜制服 | 制服丝袜在线 | 91av资源在线 | 日韩av高清在线观看 | 久草资源在线观看 | 婷婷中文字幕 | 日本精品一区二区 | 午夜精品久久久久 | 亚洲精选视频在线 | 久久精品视频中文字幕 | 亚洲乱码一区 | 日本91在线| 三上悠亚一区二区在线观看 | 视频在线观看国产 | 日韩在线视 | 91av在线免费看| 日韩精品中文字幕av | 天堂v中文 | 国产又粗又猛又黄又爽的视频 | 精品美女久久 | 国产在线欧美 | 成人av在线影视 | 黄色小视频在线观看免费 | 久热超碰 | 久久久一本精品99久久精品 | 欧美日韩国产高清视频 | 国产在线精品区 | 欧美日本不卡视频 | 一区二区三区四区五区在线 | 在线观看免费av片 | 国产精品久久在线 | 99r在线 | 国产精品亚洲综合久久 | 免费在线一区二区 | 国产乱码精品一区二区三区介绍 | 精品国产123 | 久草国产在线 | 91中文字幕在线观看 | 久久久午夜精品理论片中文字幕 | 久久精品www人人爽人人 | 免费一级片视频 | 婷婷九月激情 | 国产一级片网站 | 午夜.dj高清免费观看视频 | 91影视成人 | 一区二区三区视频 | 欧美激情视频一区二区三区免费 | 中文字幕婷婷 | 麻花天美星空视频 | 色综合天天综合网国产成人网 | 日韩一区二区久久 | 视频一区二区免费 | 五月天婷婷免费视频 | 在线播放 亚洲 | 91系列在线观看 | 一区二区三区在线免费观看视频 | 日韩免费一级a毛片在线播放一级 | 97操操| 免费看国产精品 | 国产精品婷婷午夜在线观看 | 99久久99久久精品国产片 | 伊人亚洲综合网 | 天堂中文在线播放 | 韩国av一区| 日韩免费一区二区三区 | 国产又粗又硬又爽的视频 | 综合久久久 | www.久久久| 国产美女精品视频免费观看 | 中文字幕国产视频 | 免费久久精品视频 | 亚洲国产中文字幕在线 | 久久夜夜操 | 日韩大片在线看 | 97视频免费| 射九九 | 99热国产在线观看 | 在线观看涩涩 | 91人人澡人人爽人人精品 | 少妇性色午夜淫片aaaze | 波多野结衣资源 | av在线精品| 激情在线网 | 免费成人在线观看视频 | 一区二区三区四区五区在线 | 丁香六月av | 天天超碰 | 日本福利视频在线 | 亚洲h色精品 | 97在线观看免费高清完整版在线观看 | 欧美日韩午夜在线 | 国产视频精品在线 | 福利网址在线观看 | 黄色一级在线视频 | 人人爽人人澡人人添人人人人 | 天天射天天做 | 三级视频日韩 | 国产一区视频在线 | 成人久久久久久久久久 | 久久久www成人免费精品 | 青草视频网 | 综合网天天射 | 欧美黄色特级片 | 欧美性色网站 | 婷婷亚洲五月色综合 | 国产精品一区二区无线 | 五月天激情综合 | 中文字幕一区二区三区四区久久 | 免费福利片2019潦草影视午夜 | 国产一区视频导航 | 三级在线视频播放 | 婷婷深爱网 | 亚洲专区一二三 | 天天插伊人 | 成年人在线电影 | 特级西西人体444是什么意思 | 欧美日韩中文字幕在线视频 | 在线观看完整版免费 | 在线 精品 国产 | 在线 欧美 日韩 | 亚洲午夜精品福利 | 日韩av高清在线观看 | 日韩高清在线一区二区三区 | 懂色av一区二区三区蜜臀 | 天天爽网站 | 日韩欧美国产精品 | 日韩精品第1页 | 日日摸日日 | 免费a网站 | 国产精品毛片一区二区在线看 | 免费亚洲精品 | 中文字幕丰满人伦在线 | 日韩电影中文字幕在线 | 国产在线观看你懂的 | 97视频一区 | 久久国产精品免费一区二区三区 | 国产小视频在线播放 | 日韩在线精品一区 | 91mv.cool在线观看 | 亚洲桃花综合 | 91欧美在线 | 亚洲精品视频免费在线 | 久久久99精品免费观看app | 天天操综合网站 | 成人网中文字幕 | www日韩欧美 | 国产欧美最新羞羞视频在线观看 | 国内精品久久天天躁人人爽 | 黄网站app在线观看免费视频 | av一本久道久久波多野结衣 | 99精品在线播放 | 99热99re6国产在线播放 | 欧美性性网 | 国产日韩欧美在线播放 | 97视频一区| 97在线视频观看 | 精品视频99 | 国产精品视频免费在线观看 | 国色综合 | 天天综合人人 | 狠狠地操| 亚洲精品免费在线观看视频 | 91视频在线观看大全 | 国产99久久精品一区二区300 | 久久久三级视频 | 久久激情五月丁香伊人 | 成人黄色一级视频 | 婷婷六月天在线 | 亚洲精品一区二区精华 | 婷婷综合五月天 | 日韩精品在线观看av | 亚洲精品玖玖玖av在线看 | 人人插人人草 | 成人天堂网 | 奇米影视四色8888 | 日日夜夜中文字幕 | 在线成人高清电影 | 久久久www成人免费毛片麻豆 | 人人爽人人爽人人片av | 精品字幕在线 | 国产日韩欧美综合在线 | 国产精品大片免费观看 | 日韩三级久久 | 黄色综合 | 久久精品国产亚洲精品 | 婷婷在线视频观看 | 久久久久在线观看 | 久久99亚洲精品 | 久久久久久久福利 | 国产玖玖视频 | 欧美日韩网站 | 91精品国产入口 | 免费视频xnxx com | 国模吧一区| 91看片网址| 免费看一级特黄a大片 | 成人一级电影在线观看 | 四虎www com| 探花视频免费观看 | 国产美女无遮挡永久免费 | 国产无吗一区二区三区在线欢 | 成人黄色电影在线 | 三级a视频 | 国模吧一区 | 麻豆超碰| 在线 影视 一区 | 三级在线视频观看 | 欧美成人中文字幕 | 国产精品淫 | 成人精品影视 | 91麻豆传媒 | 天天夜操 | 在线观看日韩视频 | 91精品网站| 99精品国产99久久久久久福利 | 美女视频一区二区 | 一区二区三区视频网站 | 香蕉视频在线看 | 精品久久久久久久 | 久久亚洲成人网 | 97超碰伊人 | 91在线在线观看 | 久久综合视频网 | 日韩一级片观看 | 成人在线观看网址 | av久久久久久 | 国产福利在线不卡 | 成年人免费电影 | 欧美极品少妇xxxx | 日韩欧美一区二区三区视频 | 亚洲黄a| 日韩av在线一区二区 | 四虎成人精品永久免费av | 久久精品欧美一区二区三区麻豆 | 精品视频一区在线 | 91在线精品视频 | 超碰九九 | 国产精品自产拍在线观看桃花 | 黄网站色欧美视频 | 丁香色天天 | 亚洲涩涩涩 | 国内视频在线观看 | 免费精品在线观看 | 99久在线精品99re8热视频 | 国产又粗又长的视频 | 久久亚洲婷婷 | 婷婷丁香七月 | 天天狠狠干 | 综合色中文 | 91免费高清 | 99精品免费久久久久久日本 | 国产亚洲字幕 | 亚洲精品国产精品国自产 | 国产精品毛片久久久久久久 | 97香蕉久久国产在线观看 | 欧美精品久久久久久久久久久 | 丁香花在线观看免费完整版视频 | 黄色一级在线观看 | 国产精品久久久久久一区二区三区 | 国产精品视频在线观看 | 日韩视频一区二区 | 亚洲欧美日韩一级 | 精品综合久久久 | 99精品国产一区二区三区不卡 | 开心激情五月婷婷 | 在线高清| 亚洲综合视频在线观看 | 青青啪| 伊人成人久久 | 久久黄色a级片 | 最近中文国产在线视频 | 99这里精品 | 黄色福利网 | 日日夜夜噜 | 亚洲资源在线网 | 麻豆视频在线免费看 | 中文免费在线观看 | 夜夜操天天操 | av免费线看 | 久久伊99综合婷婷久久伊 | 中文字幕4 | 国产精品第十页 | 日韩毛片在线免费观看 | 麻豆91精品91久久久 | 久久久人人人 | 三级黄色片在线观看 | 亚洲成a人片77777kkkk1在线观看 | 亚洲综合在线五月 | 亚洲成人动漫在线观看 | 一区二区在线不卡 | 天天鲁一鲁摸一摸爽一爽 | 精品在线视频观看 | 91免费观看视频网站 | www.黄色片.com| 精品视频专区 | 91免费在线播放 | 亚洲天天干 | www.天天草 | 四虎成人精品 | 国产在线观看二区 | 四虎在线视频 | 欧美va天堂在线电影 | 日日射天天射 | 国产高清av免费在线观看 | 国产视频导航 | 国产美女在线精品免费观看 | 久草视频免费 | 日韩 精品 一区 国产 麻豆 | 精品成人在线 | 亚洲天堂激情 | 日韩在线视频在线观看 | 日韩在线精品 | 在线看的av网站 | 亚洲作爱视频 | 国产专区欧美专区 | 久久久久国 | 青青河边草手机免费 | 一区二区三区精品久久久 | 免费a级黄色毛片 | 国产做aⅴ在线视频播放 | 欧美激情一区不卡 | 亚洲影院国产 | 中文字幕区 | 久久国产精品99久久人人澡 | 99精品在线免费视频 | 久久综合九色综合久久久精品综合 | 日日夜夜网站 | 国产成人av电影在线 | 青青草久草在线 | 中文字幕在线免费 | 亚洲一区av| 激情欧美日韩一区二区 | 一区二区精品在线 | 久久综合婷婷国产二区高清 | 麻豆影视在线免费观看 | 午夜在线免费视频 | av手机在线播放 | 二区三区在线观看 | 免费观看全黄做爰大片国产 | 久久人人爽爽人人爽人人片av | 日本女人的性生活视频 | 成人夜晚看av | 开心激情五月婷婷 | 国精产品永久999 | 久久亚洲综合国产精品99麻豆的功能介绍 | 9色在线视频 | 免费无遮挡动漫网站 | 国产91精品一区二区绿帽 | 午夜精品一区二区三区在线观看 | 久久9999久久免费精品国产 | 久久综合欧美精品亚洲一区 | 日韩精品久久一区二区三区 | 日韩区欧美久久久无人区 | 手机看片1042 | 国产日韩欧美在线看 | 国产一区欧美在线 | 国产一级片一区二区三区 | 国产精品久久在线观看 | 精品国精品自拍自在线 | 国产最新91 | 久久久午夜视频 | zzijzzij亚洲日本少妇熟睡 | 91av小视频| 处女av在线| 亚洲国产成人久久综合 | 91人人爽人人爽人人精88v | av网站大全免费 | 国产成人福利片 | 97精品超碰一区二区三区 | 狠狠色香婷婷久久亚洲精品 | 亚洲永久免费av | 狠狠色伊人亚洲综合网站野外 | 久久精精品视频 | 日韩一级片观看 | 99精品国产一区二区三区不卡 | 狠狠色噜噜狠狠狠狠2022 | 美女久久久久久久久久久 | 久久成人资源 | 免费高清在线观看成人 | 激情久久影院 | 国产黄在线 | 久久av一区二区三区亚洲 | 久久综合国产伦精品免费 | 久久综合五月 | 500部大龄熟乱视频 欧美日本三级 | 亚洲精品资源 | 免费无遮挡动漫网站 | 欧美性极品xxxx娇小 | 国产黄色av网站 | 国产精品久久久久久久久毛片 | 亚洲国产视频a | 伊人网综合在线观看 | 久久精品直播 | 视频在线观看一区 | 毛片一级免费一级 | av观看久久久 | 亚洲五月婷婷 | 91免费观看视频在线 | 国产精品成人免费一区久久羞羞 | 日日日爽爽爽 | 福利电影一区二区 | 成人一级电影在线观看 | 日韩视频一二三区 | 日本公妇在线观看 | 久久99精品久久久久久清纯直播 | 亚洲欧美成人网 | 欧美激情视频一区二区三区免费 | 九色最新网址 | 日韩免费一二三区 | 国产精品一区二区久久 | 精品国模一区二区 | 激情网五月婷婷 | 韩国av免费在线 | 欧美日韩中文在线观看 | 日韩一区二区三区免费视频 | 一区二区伦理 | 欧美日韩久 | 国产成人专区 | 色开心| 久久精品com | www.夜夜操.com| 亚洲精品久久久久久久不卡四虎 | 成人午夜免费剧场 | 一本大道久久精品懂色aⅴ 五月婷社区 | 国产成人精品在线 | 国产精品女同一区二区三区久久夜 | 欧美激情精品久久久 | 日本中文乱码卡一卡二新区 | 色窝资源 | 日本黄色免费在线 | 国产丝袜一区二区三区 | 久久人人爽av | 在线导航福利 | 国产在线观看不卡 | 成人a级免费视频 | av网站地址 | 成人av在线电影 | 日韩精品中文字幕在线播放 | 亚洲第一中文字幕 | 四虎在线视频 | 亚洲欧美日韩国产一区二区 | 色国产精品一区在线观看 | 丁香六月色 | 粉嫩av一区二区三区免费 | 国产精品99久久久久的智能播放 | 在线观看成人毛片 | 久久久免费观看视频 | 成片视频在线观看 | 日韩精品无 | 婷婷五月在线视频 | 日韩av影视在线观看 | 久久久久免费精品视频 | 中文字幕一区二区三区视频 | 婷婷久久一区二区三区 | 99免费观看视频 | 99热999| 国产精品99久久久久久宅男 | av片中文字幕 | 日韩高清免费在线观看 | 日韩免费专区 | 日本久久久影视 | 亚洲精品久久久蜜臀下载官网 | 日韩成人在线一区二区 | 久久精品久久久精品美女 | 国产精品久久久久久久免费 | 色狠狠一区二区 | 涩涩网站在线播放 | 精品国模一区二区三区 | 精品国产123 | 天天av天天| 久草a视频 | 天堂av影院| 99成人免费视频 | 99久久精品久久亚洲精品 | 国产精品久久久亚洲 | 69国产盗摄一区二区三区五区 | 日韩高清av | 天天色天天干天天色 | 黄色av三级在线 | 日批网站在线观看 | 久久av免费观看 | 久草精品电影 | 天天操天天色天天射 | 五月天色中色 | 最新av免费| 日韩av影视在线观看 | 成人av直播 | av电影亚洲 | 亚洲精品中文在线观看 | 黄色小网站在线观看 | 久久久久久精 | 免费看国产a | 国产打女人屁股调教97 | 亚洲91中文字幕无线码三区 | 狠狠色丁香九九婷婷综合五月 | 亚洲天天看 | 国产精品久久久久婷婷二区次 | 久久久免费高清视频 | 亚洲九九九在线观看 | 国产精品一区二区三区观看 | 最新午夜电影 | 五月婷婷六月丁香 | 天天色天天色 | 精品国产乱码久久久久 | 人人躁 | 午夜久久久影院 | 91探花国产综合在线精品 | 中文字幕av在线免费 | 视频1区2区| 国产精品毛片一区视频 | 亚洲色影爱久久精品 | 国产999视频在线观看 | 91在线小视频| 人人干人人草 | 色噜噜狠狠狠狠色综合 | 久久久观看| 超碰人在线 | 99精品视频精品精品视频 | 国产 在线 高清 精品 | 亚洲热视频 | 国产毛片在线 | 97精品在线观看 | 99精品视频在线观看免费 | 天天色天天搞 | 天天做天天爱夜夜爽 | 亚洲 欧美 综合 在线 精品 | 日本久久久久 | 久久久久亚洲精品男人的天堂 | 国产91免费在线观看 | 亚洲美女免费精品视频在线观看 | 97av在线视频免费播放 | 天天天综合 | 97国产在线观看 | www.狠狠| 99精品在线播放 | 亚洲开心激情 | 久久国产电影院 | 天天干天天干天天干 | 美女网站在线免费观看 | 国产精品一区免费看8c0m | 黄色av免费| 欧美久久久一区二区三区 | 亚洲春色综合另类校园电影 | 久久66热这里只有精品 | 亚洲黄色激情小说 | 国产一级视频在线免费观看 | 国产精在线 | 亚州精品天堂中文字幕 | 国产精品一区二区麻豆 | 91免费日韩 | 免费三级av | av网站手机在线观看 | 能在线观看的日韩av | wwwwww黄| www中文在线 | 天天插综合网 | 亚洲综合视频在线播放 | 久久久久欧美精品999 | 久久久资源| 国产经典 欧美精品 | 午夜美女福利 | 中文在线字幕免费观 | 色综合天天射 | 欧美精品一区在线 | 亚洲精品久久久久久久蜜桃 | 日本三级吹潮在线 | 黄色免费网站 | 亚洲国产激情 | 91精品老司机久久一区啪 | 91片黄在线观看 | 日韩丝袜在线 | 精品久久久久久国产 | 日韩黄在线观看 | 国产亚洲精品成人av久久影院 | 亚洲人视频在线 | 五月婷婷香蕉 | 成人黄色电影视频 | 欧美性色综合网站 | av一区二区三区在线观看 | 午夜精品视频在线 | 黄色日批网站 | 午夜国产福利视频 | 国产精品久久久999 国产91九色视频 | 精品久久免费 | 这里只有精品视频在线 | 成人免费观看在线视频 | 美女网站黄在线观看 | 99999精品| 天天做日日爱夜夜爽 | 亚洲精品麻豆 | 久久久久国产成人免费精品免费 | 国产福利小视频在线 | 午夜国产在线 | 亚洲精品美女久久久久 | 久久午夜网 | 久久国产高清视频 | 久草在线网址 | 日韩高清黄色 | 狠狠操夜夜操 | 精品国产乱码一区二区三区在线 | 视频直播国产精品 | 91久久国产自产拍夜夜嗨 | 91最新网址在线观看 | 久久国产精品视频 | 麻豆视频免费在线播放 | 黄色片网站av | 成人a免费看 | 国产视频在线观看一区 | 日韩av影视 | 人人看看人人 | 91精品在线视频观看 | 久久婷婷一区二区三区 | 日本公妇色中文字幕 | 一区二区三区国产精品 | 中文字幕日韩免费视频 | 午夜精品电影 | 午夜精品久久久久久久99水蜜桃 | 日韩免费电影一区二区 | 日韩动态视频 | www.伊人网.com| 国产精品av免费在线观看 | 热久久免费国产视频 | 97在线视频免费播放 | 天天干夜夜爱 | 成人免费在线观看av | 亚洲视频免费在线观看 | 国产精品2018 | 黄色网在线免费观看 | 亚洲一区二区三区91 | 国产成人综合在线观看 | 黄色软件在线看 | 天天夜夜亚洲 | 欧美日韩精品在线 | 国内精自线一二区永久 | 日韩中文字幕视频在线 | 永久免费精品视频网站 | 精品成人a区在线观看 | 91精品国产99久久久久久红楼 | 在线国产视频一区 | 亚洲一级黄色大片 | 国产三级av在线 | 亚洲电影一级黄 | 国产手机免费视频 | 日韩天天干| 中文字幕在线观看视频免费 | 尤物九九久久国产精品的分类 | 婷婷伊人综合 | 亚洲欧美视屏 | 国产日产精品一区二区三区四区 | av女优中文字幕在线观看 | 特级西西人体444是什么意思 | 亚洲综合少妇 | 91在线观| 欧美日在线观看 | 精品久久久久久久久久久久久久久久久久 | 韩国一区视频 | 91av视频免费观看 | 久久免费试看 | 天天色天天射天天综合网 | 欧美日本啪啪无遮挡网站 | 91在线播放综合 | 国产电影黄色av | 久久综合电影 | 在线观看91精品国产网站 | 日韩精品中字 | 美女网站在线观看 | 国产亚洲视频系列 | 一区二区精品久久 | 亚洲天天综合网 | 日韩欧美视频在线播放 | 国产在线视频在线观看 | 色www免费视频 | 91精品国产入口 | 欧美一级久久久 | 伊人久久五月天 | 精品免费99久久 | 6080yy精品一区二区三区 | 一区二区免费不卡在线 | 91精品日韩 | 欧美另类交人妖 | 在线国产不卡 | 人人干干人人 | 久久黄色网 | 国产精品国产三级国产 | 啪啪精品 | 免费观看一区二区三区视频 | 成人网444ppp | 成人黄色电影视频 | 色综合人人| 人人射人人插 | 亚洲日日日 | 中文字幕在线看片 | 婷婷色六月天 | 国产视频69 | 中文字幕在线观看第一页 | 亚洲国产免费看 | a在线免费观看视频 | 美女在线观看网站 | 国产精品视频你懂的 | 91av在线精品 | 欧美激情精品久久久久久免费印度 | av电影一区二区三区 | 在线观看91av | 精品国自产在线观看 | 久久久久伦理电影 | 天天干,狠狠干 | 成人av网页| 欧美黄色软件 | 五月天综合激情网 | 成人动漫视频在线 | 日韩av一区二区在线播放 | 成年人黄色免费看 | 日韩欧美有码在线 | 日韩av一区二区三区四区 | 9797在线看片亚洲精品 | 日韩免费高清 | 91在线日韩 | 久久尤物电影视频在线观看 | 在线观看av网站 | 久久婷婷丁香 | 亚洲欧美国产精品va在线观看 | 久久久久成 | 欧美日韩免费视频 | 五月天视频网站 | 欧美一区二区免费在线观看 | 97在线视频免费播放 | 亚洲天堂网站视频 | 青春草视频在线播放 | 日韩在线观看三区 | 伊人首页| 91在线播放国产 | 天天操天天爱天天干 | 国产aaa免费视频 | 婷婷久久网站 | 婷婷综合久久 | 99综合影院在线 | 久久国产系列 | 51久久夜色精品国产麻豆 | 日韩欧美aaa| 日韩欧美国产精品 | 午夜久久美女 | 亚洲精品乱码久久 | 97人人网| 在线视频1卡二卡三卡 | 免费在线观看av网站 | 黄色精品一区二区 | 狠狠狠色丁香婷婷综合久久五月 | 欧美一区二区免费在线观看 | 91精品视频一区二区三区 | 999久久国精品免费观看网站 | 91视频免费看 | 免费高清无人区完整版 | 久久少妇免费视频 | 免费国产黄线在线观看视频 | 国产欧美精品一区二区三区四区 | 国产在线a免费观看 | 亚洲一区精品人人爽人人躁 | 九九一级片 | 久久久久久久久久久久av | 999国内精品永久免费视频 | 999久久国精品免费观看网站 | 日本高清免费中文字幕 | 亚洲午夜久久久久久久久 | 国产日韩欧美中文 | 国产成人一区二区三区免费看 | 国产免费不卡 | 在线观看视频中文字幕 | 免费成人看片 | 91精品国产麻豆国产自产影视 | 国产精品久久久久久久久久久杏吧 | 免费日韩av片 | 91免费看片黄 | 91视频在线观看大全 | 日批网站在线观看 | av在线播放快速免费阴 | 成人在线观看免费 | 免费三级在线 | 国产精品久久久久久久久久尿 | 久久久久伦理电影 | 99久久精品国产网站 | 伊人va| 伊人婷婷 | 国产精品涩涩屋www在线观看 | 丁香婷婷色月天 | 五月婷婷电影网 | 韩国av一区二区三区 | 少妇自拍av | 日韩中文字幕网站 | 高清精品久久 | 成年人国产精品 | 欧美精品免费在线 | 狠狠色狠狠色合久久伊人 | 伊人中文在线 | 蜜臀久久99精品久久久无需会员 | 亚洲欧洲精品久久 | 日日夜夜天天人人 | 91色国产在线 | 综合网天天色 | 99精品久久久久 | 少妇高潮流白浆在线观看 | 久久久久国产成人免费精品免费 | 日韩欧美精品在线视频 | 1024在线看片 | 国产色在线视频 | 九九视频一区 | 在线电影 一区 | 成人国产精品久久久久久亚洲 | 久久久久夜色 | 国产在线一卡 | 日韩视频欧美视频 | 天天五月天色 | 国产破处在线视频 | 中文字幕最新精品 | 日日爱夜夜爱 | 在线超碰av | 日韩高清不卡在线 | 日本最新高清不卡中文字幕 | 国内精品久久久精品电影院 | 婷婷网站天天婷婷网站 | 97在线视频免费观看 | 97超级碰碰碰视频在线观看 | 91麻豆精品国产91久久久无需广告 | 免费试看一区 | 成人性生爱a∨ | 亚洲最大色 | 久久久久久国产精品亚洲78 | 五月婷网站 | 狠狠狠色丁香综合久久天下网 | 亚洲女人天堂成人av在线 | 免费观看一区二区三区视频 | 久草com | 国产精美视频 | 深夜免费福利网站 | 日韩欧美精品一区二区三区经典 | 午夜视频在线观看一区二区 | 精品主播网红福利资源观看 | 永久免费视频国产 | www.精选视频.com | 韩国av电影在线观看 | 国产专区在线看 | 国内视频在线观看 | 在线观看视频h | 一区二区三区精品久久久 | 亚洲第一区在线播放 | av免费在线观看1 | 特级毛片aaa | www.伊人色.com| 亚洲欧洲中文日韩久久av乱码 | 久久久国产精品人人片99精片欧美一 | 一区三区视频 | 欧美另类交人妖 | 天天操天天爱天天爽 | 日韩免费一区二区在线观看 | 成人免费在线看片 | 免费在线国产精品 | 日韩在线观看一区二区 | 国产午夜不卡 | 欧美福利久久 | 91视频在线免费观看 | 99久久精品日本一区二区免费 | 伊人久久一区 | 91精品视频在线 | 日本黄色免费大片 | 悠悠av资源片 | 国产成人99av超碰超爽 | 99这里都是精品 | 中文字幕 91 | 中文字幕资源站 | 亚洲精品乱码久久久久久 | 麻豆va一区二区三区久久浪 | 久久久久久久久久久久久久电影 | 色婷婷亚洲精品 | 天堂网一区二区三区 | 在线亚洲人成电影网站色www | 久久黄色片 | 啪啪肉肉污av国网站 | 国产视频精品免费 | 豆豆色资源网xfplay | 久久福利电影 | 91精品久久久久久久91蜜桃 | 丁香视频 | 中文字幕有码在线 | 久久免费视频国产 | 久久精品网址 | 97看片网| av免费网站在线观看 | 国产视频一区精品 | 最近最新mv字幕免费观看 | 人人干人人超 | 九九热国产 | 视频91 | 中文字幕在线免费观看 | 国内成人精品2018免费看 | 亚洲少妇自拍 | 全久久久久久久久久久电影 | 久久久www成人免费毛片麻豆 | 日本中文字幕在线看 | 久久激情小视频 | 日韩av中文在线观看 | 精品国产乱码一区二 | 久久免费成人 | 欧美国产亚洲精品久久久8v | 在线观看91精品视频 | www.国产高清 | 亚洲成人资源 | 伊人狠狠 | 天天色天天操综合 | 国产精品嫩草在线 | 久久福利影视 | 天天摸天天操天天舔 | 久久久久观看 | 色综合久久中文字幕综合网 | 精品国产视频在线 | 日韩在线视频不卡 | 91最新在线 | 最近中文字幕视频完整版 | 中文字幕资源网 | 国产麻豆视频在线观看 | 久久久久夜色 | 日韩精品aaa | 免费黄色网址网站 | 欧美一级看片 | 久久综合久久综合这里只有精品 | 日韩一级电影在线 | 久久精品国产一区二区电影 | www.久久com | 日韩久久久久久久 | 日韩国产精品一区 | 亚洲一区黄色 | 夜夜操网| 国产无限资源在线观看 | 日日精品| www.夜夜骑.com | sm免费xx网站 | 激情综合五月网 | 日韩伦理片一区二区三区 | 娇妻呻吟一区二区三区 | 最新日韩在线观看 | 麻花豆传媒mv在线观看 | 国产精品中文字幕在线 | 国产精品日韩在线 | 91香蕉视频色版 | 中文字幕在线播放视频 | 久久人人97超碰精品888 | 国产中文字幕视频在线观看 | 欧美日韩视频在线观看免费 | 成人av免费播放 | 99久免费精品视频在线观看 | 91色蜜桃 | 日韩高清成人在线 | 久久国产精品久久久 | 色综合久久88色综合天天人守婷 | 国产又粗又猛又黄视频 | 久久黄色网 | 香蕉久草在线 | 最近久乱中文字幕 | 麻豆国产视频下载 | 亚洲精品国偷拍自产在线观看蜜桃 | 婷婷综合五月 | 99精品国产高清在线观看 | 亚洲激情校园春色 | 久久国产免费 | 中国美女一级看片 | 91大神精品视频在线观看 | 黄色三级免费 | 国产高清 不卡 | 一级特黄av| 国内精品久久久久影院一蜜桃 | 国产在线一线 | 欧美日韩在线视频免费 | 最新国产精品拍自在线播放 | 中文字幕国产精品一区二区 | 欧美a级一区二区 | 日本精a在线观看 | 免费观看的av |