掛載mount
掛載: 將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為 卸載: 為解除此關聯關系的過程 把設備關聯掛載點:mount Point mount 卸載時: 可使用設備,也可以使用掛載點 umount 掛載點下原有文件在掛載完成后會被臨時隱藏 掛載點目錄一般為空
用mount命令掛載文件系統
掛載方法:mount DEVICE MOUNT_POINT mount 不帶任何參數 通過查看/etc/mtab文件顯示當前已掛載的所有設備 mount [-fnrsvw] [-t vfstype] [-o options] device dir device:指明要掛載的設備; (1) 設備文件:例如/dev/sda5 (2) 卷標:-L 'LABEL', 例如-L 'MYDATA' (3) UUID, -U 'UUID':例如-U '0c50523c-43f1-45e7-85c0-a126711d406e' (4) 偽文件系統名稱:proc, sysfs, devtmpfs, configfs dir:掛載點 事先存在;建議使用空目錄 進程正在使用中的設備無法被卸載 -o options 掛在選項開啟關閉什么功能。 man mount FILESYSTEM INDEPENDENT MOUNT OPTIONS
mount常用命令選項
-r: readonly,只讀掛載 光驅只能只讀掛載,其他文件系統也可以掛載,防止文件被修改 -w: read and write, 讀寫掛載 (默認讀寫) -n: 不更新/etc/mtab,默認掛載會卸載都會同步更新此文件。mtab的內容與mount命令內容基本一致。 -a:自動掛載所有支持自動掛載的設備(定義在了/etc/fstab文件中,且掛載選項中有auto功能) -L 'LABEL': 以卷標指定掛載設備 -U 'UUID': 以UUID指定要掛載的設備 -B, --bind: 綁定目錄到另一個目錄上 目錄掛載到目錄上 -t vsftype:指定要掛載的設備上的文件系統類型 多數情況下可省略。mount會自動通過 目錄綁定 mount --bind 源目錄 目標目錄 blkid命令識別設備類型。 查看內核追蹤到的已掛載的所有設備: cat /proc/mounts
mount常用命令選項
-o options:(掛載文件系統的選項),多個選項使用逗號分隔 async:異步模式 sync:同步模式,內存更改時,同時寫磁盤 atime/noatime:包含目錄和文件 是否更新訪問時間。 diratime/nodiratime:是否更新目錄的訪問時間戳 auto/noauto:是否支持自動掛載,是否支持-a選項 exec/noexec:是否支持將文件系統上運行應用程序 dev/nodev:是否支持在此文件系統上使用設備文件 suid/nosuid:不否支持suid和sgid權限 remount:重新掛載 需要重新掛載的設備,不需要卸載再掛載。此參數可實現。 ro:只讀 rw:讀寫 user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載 acl:啟用此文件系統上的acl功能 suid:是否允許特殊權限生效 Defaults:相當于rw, suid, dev, exec, auto, nouser, async
使用技巧:
查看當前系統所有已掛載的設備 mount cat /etc/mtab cat /proc/mounts 這個是最準確的。
卸載命令
查看掛載情況: #findmnt MOUNT_POINT [root@localhost ~]# findmnt TARGET SOURCE FSTYPE OPTIONS / /dev/sda2 xfs rw,relatime,attr2,inode64,noquota ├─/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime │ ├─/sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime │ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,mode=755 │ │ ├─/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd │ │ ├─/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,relatime,memory │ │ ├─/sys/fs/cgroup/net_cls cgroup cgroup rw,nosuid,nodev,noexec,relatime,net_cls │ │ ├─/sys/fs/cgroup/hugetlb cgroup cgroup rw,nosuid,nodev,noexec,relatime,hugetlb │ │ ├─/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuset │ │ ├─/sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,relatime,blkio │ │ ├─/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu │ │ ├─/sys/fs/cgroup/perf_event cgroup cgroup rw,nosuid,nodev,noexec,relatime,perf_event │ │ ├─/sys/fs/cgroup/freezer cgroup cgroup rw,nosuid,nodev,noexec,relatime,freezer │ │ └─/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,relatime,devices │ ├─/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,relatime │ ├─/sys/kernel/debug debugfs debugfs rw,relatime │ └─/sys/kernel/config configfs configfs rw,relatime ├─/proc proc proc rw,nosuid,nodev,noexec,relatime │ ├─/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=34,pgrp=1,timeout=300,minproto=5,maxproto=5,direct │ └─/proc/fs/nfsd nfsd nfsd rw,relatime ├─/dev devtmpfs devtmpfs rw,nosuid,size=486144k,nr_inodes=121536,mode=755 │ ├─/dev/shm tmpfs tmpfs rw,nosuid,nodev │ ├─/dev/pts devpts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 │ ├─/dev/mqueue mqueue mqueue rw,relatime │ └─/dev/hugepages hugetlbfs hugetlbfs rw,relatime ├─/run tmpfs tmpfs rw,nosuid,nodev,mode=755 │ └─/run/user/0 tmpfs tmpfs rw,nosuid,nodev,relatime,size=100136k,mode=700 ├─/var/lib/nfs/rpc_pipefs sunrpc rpc_pipefs rw,relatime ├─/usr /dev/sda3 xfs rw,relatime,attr2,inode64,noquota └─/boot /dev/sda1 xfs rw,relatime,attr2,inode64,noqu
查看正在訪問指定文件系統的進程:
#lsof MOUNT_POINT #fuser -v MOUNT_POINT
終止所有在正訪問指定的文件系統的進程:
# fuser -km MOUNT_POINT 謹慎使用
卸載:
# umount DEVICE # umount MOUNT_POINT
掛載實例
查看分區信息 [root@localhost ~]# fdisk -l Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x00026d95 Device Boot Start End Blocks Id System /dev/sda1 * 2048 1001471 499712 83 Linux /dev/sda2 1001472 84887551 41943040 83 Linux /dev/sda3 84887552 126830591 20971520 83 Linux /dev/sda4 126830592 251658239 62413824 5 Extended /dev/sda5 126834688 131031039 2098176 82 Linux swap / Solaris /dev/sda6 126832640 126834687 1024 83 Linux /dev/sda7 131033088 172976127 20971520 83 Linux /dev/sda8 172978176 193949695 10485760 83 Linux 查看已經掛載的分區 [root@localhost ~]# mount | grep "sda" /dev/sda2 on / type xfs (rw,relatime,attr2,inode64,noquota) /dev/sda3 on /usr type xfs (rw,relatime,attr2,inode64,noquota) /dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,noquota) 查看分區類型、卷標、uuid root@localhost ~]# blkid /dev/sda7 /dev/sda7: LABEL="mydate" UUID="dfc6560a-aad9-4df1-b79a-b5316620bc1e" TYPE="ext4" 掛載文件系統 [root@localhost ~]# mkdir /mydata [root@localhost ~]# mount /dev/sda7 /mydata
掛載點和/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 激活交換空間
掛載交換分區
swap
linux上的交換分區必須使用獨立的文件系統 且文件系統的systemid必須為82 mkswap [options] device [size] 創建交換分區文件系統 啟用:swapon swapon[OPTION]... [DEVICE] -a:激活所有的交換分區; -p PRIORITY:指定優先級 /etc/fstab:pri=value 禁用:swapoff[OPTION]... [DEVICE]
SWAP的優先級
用戶可以給某個swap指定一個0到32767的優先級 如果用戶沒有指定,那么核心會自動給swap指定一個優先級,這個優先級從-1開始,每加入一個新的沒有用戶指定優先級的swap,會給這個優先級減一。 先添加的swap的缺省優先級比較高,除非用戶自己指定一個優先級,而用戶指定的優先級(是正數)永遠高于核心缺省指定的優先級(是負數)。 優化性能:分布存放,高性能磁盤存放
移動介質
掛載(Mounting)意味著使外來的文件系統看起來如同是主目錄樹的一部分。 訪問前、介質必須被掛載 摘除時,介質必須被卸載 按照默認設置,非根用戶只能掛載某些設備(光盤、DVD、軟盤、USB等等) 掛載點通常在/media 或/mnt下
使用光盤
在圖形環境下自動啟動掛載 /run/media/<user>/<label> 否則就必須被手工掛載 mount -r /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:inodesinstead of blocks -P: 以Posix兼容的格式輸出 查看某目錄總體空間占用狀態: du [OPTION]... DIR -h: human-readable -s: summary
工具dd
dd命令:convert and copy a file 用法: ddif=/PATH/FROM/SRC of=/PATH/TO/DEST bs=#:block size, 復制單元大小 count=#:復制多少個bs of=file寫到所命名的文件而不是到標準輸出 if=file從所命名文件讀取而不是從標準輸入 bs=size指定塊大?。仁鞘莍bs也是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)字符補齊
注意:skip=xxx是在備份時對if 后面的部分也就是原文件跳過多少塊再開始備份;seek=xxx則是在備份時對of 后面的部分也就是目標文件跳過多少塊再開始寫。
磁盤拷貝: dd if=/dev/sdaof=/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 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錯誤。當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢。上邊的命令有可能使這些數據起死回生。且這個過程是安全,高效的。
原創文章,作者:yyw,如若轉載,請注明出處:http://www.www58058.com/40807