fstab配置文件、swap分區,文件關聯,lvm
掛載點和/etc/fstab
? 配置文件系統體系 ? 被mount、 fsck和其它程序使用 ? 系統重啟時保留文件系統體系 ? 可以在設備欄使用文件系統卷標 ? 使用mount -a 命令掛載/etc/fstab中的所有文件系統
文件掛載配置文件
? /etc/fstab 每行定義一個要掛載的文件系統; ? 要掛載的設備或偽文件系統 ? 掛載點 ? 文件系統類型 ? 掛載選項 ? 轉儲頻率 ? 自檢次序 ? 要掛載的設備或偽文件系統: 設備文件、 LABEL(LABEL="")、 UUID(UUID="")、偽文件系統名稱(proc,sysfs) ? 掛載選項: defaults ? 轉儲頻率: 0:不做備份 1:每天轉儲 2:每隔一天轉儲 ? 自檢次序: 0:不自檢 1:首先自檢;一般只有rootfs才用1
處理交互文件和分區
? 交換分區是系統RAM的補充 ? 基本設置包括: ? 創建交換分區或者文件 ? 使用mkswap寫入特殊簽名 ? 在/etc/fstab文件中添加適當的條目 ? 使用swapon -a 激活交換空間
掛載交換分區
? 啟用: swapon swapon [OPTION]... [DEVICE] -a:激活所有的交換分區; -p PRIORITY:指定優先級 /etc/fstab:pri=value ? 禁用: swapoff [OPTION]... [DEVICE]
SWAP的優先級
? 用戶可以給某個swap指定一個0到32767的優先級 ? 如果用戶沒有指定,那么核心會自動給swap指定一個優先級,這個優先級從-1開始,每加入一個新的沒有用戶指定優先級的swap,會給這個優先級減一。 ? 先添加的swap的缺省優先級比較高,除非用戶自己指定一個優先級,而用戶指定的優先級(是正數)永遠高于核心缺省指定的優先級(是負數)。 ? 優化性能:分布存放,高性能磁盤存放
移動介質
? 掛載意味著使外來的文件系統看起來如同是主目錄樹的一部分 ? 訪問前、介質必須被掛載 ? 摘除時,介質必須被卸載 ? 按照默認設置,非根用戶只能掛載某些設備(光盤、 DVD、軟盤、 USB等等) ? 掛載點通常在/media 或/mnt下
使用光盤
? 在圖形環境下自動啟動掛載/run/media/<user>/<label> ? 否則就必須被手工掛載 mount /dev/cdrom /mnt/ ? eject命令卸載或彈出磁盤 ? 創建ISO文件 cp /dev/cdrom /root/centos7.iso mkisofs -r -o /root/etc.iso /etc ? 刻錄光盤 wodim –v –eject centos.iso
掛載USB介質
? 被內核探測為SCSI設備 ? /dev/sdaX、 /dev/sdbX、或類似的設備文件 ? 在圖形環境中自動掛載 ? 圖標在[計算機]窗口中創建 ? 掛載在/run/media/<user>/<label> ? 手動掛載 ? mount /dev/sdb1 /mnt
常見工具
? 內存空間使用狀態: free [OPTION] -m: 以MB為單位 -g: 以GB為單位 ? 文件系統空間占用等信息的查看工具: df [OPTION]... [FILE]... -H 以1000為單位 -T 文件系統類型 -h: human-readable -i: inodes instead of blocks -P: 以Posix兼容的格式輸出 ? 查看某目錄總體空間占用狀態: du [OPTION]... DIR -h: human-readable -s: summary
工具dd
? dd命令: convert and copy a file ? 用法: dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=#: block size, 復制單元大小 count=#:復制多少個bs ? of=file 寫到所命名的文件而不是到標準輸出 if=file 從所命名文件讀取而不是從標準輸入 bs=size 指定塊大小(既是是ibs也是obs) ibs=size 一次讀size個byte obs=size 一次寫size個byte cbs=size 一次轉化size個byte skip=blocks 從開頭忽略blocks個ibs大小的塊 seek=blocks 從開頭忽略blocks個obs大小的塊 count=n 只拷貝n個記錄 ? conv=conversion[,conversion...] 用指定的參數轉換文件。 ? 轉換參數: ? ascii 轉換 EBCDIC 為 ASCII ? ebcdic 轉換 ASCII 為 EBCDIC ? block 轉換為長度為 cbs 的記錄,不足部分用空格填充。 ? unblock 替代cbs長度的每一行尾的空格為新行 ? lcase 把大寫字符轉換為小寫字符 ? ucase 把小寫字符轉換為大寫字符 ? swab 交換輸入的每對字節。 ? noerror 出錯時不停止 ? notrunc 不截短輸出文件。 ? sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊 ? 磁盤拷貝: dd if=/dev/sda of=/dev/sdb ? 備份MBR: dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1 ? 破壞MBR中的bootloader: dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446 ? 有二進制文件 fileA, size>2K?,F在想從第64個字節位置開始讀取,需要讀取的大小是128Byts。又有fileB, 想把上面讀取到的128Bytes寫到第32個字節開始的位置,替換 128Bytes,請問如何實現? #dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc ?備份: dd if=/dev/sdx of=/dev/sdy 將本地的/dev/sdx整盤備份到/dev/sdy dd if=/dev/sdx of=/path/to/image 將/dev/sdx全盤數據備份到指定路徑的image文件 dd if=/dev/sdx | gzip >/path/to/image.gz 備份/dev/sdx全盤數據,并利用gzip工具進行壓縮,保存到指定路徑 ?恢復: dd if=/path/to/image of=/dev/sdx 將備份文件恢復到指定盤 gzip -dc /path/to/image.gz | dd of=/dev/sdx 將壓縮的備份文件恢復到指定盤 ? 拷貝內存資料到硬盤 dd if=/dev/mem of=/root/mem.bin bs=1024 將內存里的數據拷貝到root目錄下的mem.bin文件 ? 從光盤拷貝iso鏡像 dd if=/dev/cdrom of=/root/cd.iso 拷貝光盤數據到root文件夾下,并保存為cd.iso文件 ? 銷毀磁盤數據 dd if=/dev/urandom of=/dev/sda1 利用隨機的數據填充硬盤,在某些必要的場合可以用來銷毀數據。執行此操作以后, /dev/sda1將無法掛載,創建和拷貝操作無法執行。 ? 得到最恰當的block size dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file 通過比較dd指令輸出中所顯示的命令執行時間,即可確定系統最佳的block size大小 ? 測試硬盤讀寫速度 dd if=/root/1Gb.file bs=64k | dd of=/dev/null dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000 通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫速度 ? 修復硬盤 dd if=/dev/sda of=/dev/sda 當硬盤較長時間(比如1, 2年)放置不使用后,磁盤上 會產生消磁點。當磁頭讀到這些區域時會遇到困難,并可 能導致I/O錯誤。當這種情況影響到硬盤的第一個扇區時 ,可能導致硬盤報廢。上邊的命令有可能使這些數據起死 回生。且這個過程是安全,高效的。
mount
1、掛載iso文件
dd if=/dev/sr0 of=/testdir/centos6.iso mount -o loop /testdir/centos6.iso /mnt/centos.ios vim /etc/fstab /testdir/centos6.iso /mnt/centos.ios iso9660 loop 0 0 mount -a mount
注意:mount -a 是/etc/fstab里新有了配置文件,執行一次mount -a新的配置可以生效。但是,要是修改配置文件的話mount -a則沒有效果。這時候需要使用mount -o remount /dev/sd* 使用 loop 模式用來將一個檔案當成硬盤分割掛上系統
2、mount -B /boot /mnt/boot或者:mount –bind /boot /mnt/boot
綁定目錄到另一個目錄上 注意:文件夾掛文件夾,在df下是看不到的。要mount才能看到 fstab的寫法 /mnt/etc /mnt/usr none bind 0 0 實驗:驗證fstab文件是網卡啟動之前掛載,還是之后掛載。 結論:如果fstab里面文件有錯誤,而且是要檢測的話,系統就起不來了
這里建議寫0
/etc/fstab 設備名出錯,自檢非0,開機會導致無法啟動。 修復方法: 起不來系統會提示重啟,還是繼續操作,這時候輸入root密碼會進入系統。進去修改/etc/fstab文件。但這里修改好以后無法保存退出,因為文件是只讀的。根里也不讓修改。這時候重掛一下根mount -o remount,rw / 就可以修改/etc/fstab文件了,這時候系統就可以啟動了。
swap分區掛載
注意:swap用mount是看不到的, swap對硬盤的要求會高一點,swap新的分區放在硬盤的最外道。sdc1或sdb1,分盤時用最前面的。 swap的創建
方法一:
1、fdisk -t 82 創建一個分區 2、mkswap /dev/sdc1 這一步是格式化(比較特殊)。執行這一步lsblk之后才能發現分區的類型變成swap。swapon /dev/sdb1 啟動交換分區 swapoff /dev/sdb1 禁用交換分區 3、在配置文件里寫 /dev/sdc1 swap swap defaults,pri=100 0 0(注意優先級) 4、swapon -a 讀/etc/fstab 生效(swapon -s 可以先查看哪些交換分區有效) 5、free查看,swap變大了
注意:修改完優先級以后,要先swapoff /dev/sdb1,先禁用,再swapon -a 啟用(注意:這里如果用swapon /dev/sdb1,則優先級就不會改變,因為這樣就不會去讀/etc/fstab文件了,所以一定要用swapon -a),這時才會生效
刪除swap分區 swapoff /dev/sdb1 vim /etc/fstab 里刪除對應的行 fdisk /dev/sdb 刪除分區
方法二:(事實上,有時候會沒有額外的分區當swap分區。所以可以用文件來當swap)
用文件創建swap分區 dd if=/dev/zero of=/testdir/partfile bs=1M count=1024 mkswap /testdir/swapfile blkid /testdir/swapfile vim /etc/fstab /testdir/swapfile swap swap pri=100 0 0 swapon -s 查看swap分區 swapon -a 讀/etc/fstab 生效 swapon -s 查看swap分區 刪除swap文件 swapoff /testdir/swapfile rm /testdir/swapfile 刪除vim /etc/fstab里對應的 同樣的用文件當分區 dd if=/dev/zero of=/testdir/partfile bs=1M count=1024 mkfs.ext4 /testdir/partfile blkid /testdir/partfile mkdir /mnt/partfile mount -o loop /testdir/partfile /mnt/partfile cd /mnt/partfile vim /testdir/partfile /mnt/partfile ext4 loop 0 0 寫到配置文件里 這里實際上是一個文件,但用起來和分區一樣,備份直接把文件拷走
centos6 實現loop 設備和文件關聯
dd if=/dev/zero of=/testdir/bigfile bs=1M count=500 losetup /dev/loop7 /testdir/bigfile mkfs.ext4 /testdir/bigfile mount /dev/loop7 /mnt/bigfile/ losetup -a
練習
? 1、創建一個2G的文件系統,塊大小為2048byte, 預留1%可 用空間,文件系統ext4,卷標為TEST,要求此分區開機后自 動掛載至/testdir目錄,且默認有acl掛載選項
? 2、寫一個腳本,完成如下功能: (1) 列出當前系統識別到的所有磁盤設備; (2) 如磁盤數量為1,則顯示其空間使用信息; 否則,則顯示最后一個磁盤上的空間使用信息;
原創文章,作者:15152188070,如若轉載,請注明出處:http://www.www58058.com/42563
文檔功底相當不錯,也非常認真,很出彩,加油