磁盤有機械硬盤(HDD)和固態硬盤(SSD)之分node
機械硬盤即傳統的普通硬盤,主要有:盤片,磁頭,盤片轉軸以及控制電機,磁頭控制器,數據轉換器,接口,緩存等幾個部分組成。linux
固態硬盤,簡稱固盤,是用固態電子存儲芯片陣列而製成的硬盤,由控制單元和存儲單元組成。centos
當前比較主流的硬盤接口有SATA,SAS,PCIE,FC緩存
fdisk,parted,gdisk,blkid,tune2fsapp
Ext3/4 XFS文件系統解析oop
cp測試
1、分配一個未使用的inode號碼,在inode表中添加一個新的項目 2、在目錄的表中建立一個dentry,關聯文件名和inode號碼 3、把數據複製到新文件中
mvui
若是目標和源文件在相同的文件系統: 1、使用新文件名新建dentry 2、刪除帶有原文件名的dentry 除時間標記之外對inode沒有影響,對磁盤上的數據沒有影響,不會移動數據,若是目標是不一樣的文件系統,mv就是複製和刪除
rmcentos7
1、減小連接的數目,從而釋放inode號碼,這個號碼能夠被重新利用 2、把數據塊放在可用的空間列表中 3、刪除dentry 4、數據沒有被實際的刪除,可是當數據塊被另外一個文件使用時,原有的數據就會被覆蓋
軟鏈接vs硬連接spa
硬連接 1、兩個文件名必須都在一個文件系統上(共享一個inode號碼,inode表對於某個文件系統是獨特的)。inode號碼和inode必須在同一個文件系統 2、沒法使用ln命令建立目錄的額外硬連接 3、文件的連接數會增長,刪除文件連接數會減1,在刪除全部名稱以前,數據一直存在 ln filename likename
符號連接(軟鏈接) 1、有本身的inode號碼:符號連接和源文件不一樣的單獨文件 2、長列表(ls -l)的第一個字母是l:符號連接是一種特殊類型的文件,他有着本身的文件類型標記 3、符號連接的權限不重要,實際上指的是文件的權限 4、符號連接的內容是它指向文件的路徑名 5、若是刪除了原文件,則數據丟失(找不到連接地址,更像是一個快捷方式) ln -s /PATH/filename likename 使用readlink b.txt 讀取連接中的路徑
掛載是咱們訪問文件系統的方法,。文件系統中的數據須要掛載纔可以訪問。
掛載點是一個目錄,爲咱們提供訪問文件系統的接口
使用mount命令咱們能夠看到當前的系統都掛在了那些文件系統 [root@localhost ~]# mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=917596k,nr_inodes=229399,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agen t=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio, net_cls)cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) configfs on /sys/kernel/config type configfs (rw,relatime) /dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota) selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=36,pgrp=1,timeout=0,minproto=5 ,maxproto=5,direct,pipe_ino=13846)mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel) debugfs on /sys/kernel/debug type debugfs (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel) nfsd on /proc/fs/nfsd type nfsd (rw,relatime) /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) tmpfs on /run/user/42 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=186708k,mode=700,uid=42 ,gid=42)tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=186708k,mode=700,uid= 1000,gid=1000)fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime) gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,gr oup_id=1000)tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=186708k,mode=700) [root@localhost ~]#
咱們可使用mount命令手動掛載文件系統(man mount)
沒有空盤暫時不作演示,具體百度
掛載狀態下的文件系統若是再也不使用或者須要在已掛載文件系統的掛載點下掛載其它文件系統,須要先卸載正在掛載狀態的文件系統(umount)
fuser
-v 那些進程在佔用掛載點
-km 結束佔用掛載點的進程
掛載光盤 mount -t iso9660 /dev/cdrom /mnt 掛載鏡像文件 mount -o loop /tmp/RHEL6.iso /mnt 掛載USB設備 mount -t vfat /dev/sdNX /mnt
有時候咱們但願某個文件系統可以在開機的時候,自動掛載到某一個掛載點,這個時候咱們可使用/etc/fstab 注意:將新文件系統添加到/etc/fstab時,應該使用blkid肯定其UUID並經過UUID進行掛載,不能按照設備名稱掛載 centos7在/etc/fstab中使用UUID,而不是LABEL,以減小命名衝突的可能性
不作測試。。
[root@localhost ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Mon Aug 20 19:02:30 2018 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=1b37695f-7fff-4261-a64e-3ed5a912d97e /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 [root@localhost ~]#
fstab每行有6各部分(設備的UUID,掛載點,文件系統類型,掛載選項,dump,fsck)
編輯fstab時要注意,若是不慎將裏面的內容寫錯,可能致使在啓動的時候出現異常,不作測試,遇到問題本身百度(不報錯就說明正常)
交換分區是磁盤空間的一個術語,用於擴展系統內存,一般是作額外特殊磁盤分區。正如分區須要格式化文件系統,而後才能用戶存儲文件和目錄同樣,交換分區最初也必須進行這樣的格式化。
簡單介紹。。詳情百度
建立swap交換分區(請百度,很簡單)
1、將分區變成pv [root@localhost ~]# pvcreate /dev/sda2 2、建立卷組vg001,並將pv假如vg001 [root@localhost ~]# vgcreate vg001 /dev/sda2 3、從vg001組建立邏輯卷lv001,大小80M [root@localhost ~]# lvcreate -L 80M -n lv001 vg001 4、建立文件系統 [root@localhost ~]# mkfs.xfs /dev/vg001/lv001 5、開機掛載 [root@localhost ~]# blkid /dev/vg001/lv001
因爲時間關係一部分沒測試,抱歉,遇到問題能夠留言或者自行百度