Linux磁碟掛載、分割槽、擴容操作
在Linux系統中所有的裝置都會以檔案的形式儲存。裝置一般儲存在/dev目錄下面,以sda、sda1、sda2 …,sdb、sdb1…,hda,hdb。現在的裝置一般都是sd命名,以前的很老的硬碟是以ha命名。
sda:第一塊硬碟,如果對磁碟進行了分割槽會有sda1(第一個分割槽),sda2等。
sdb:第二個硬碟,同樣對硬碟分割槽後有sdb1,sdb2等。
分割槽
分割槽的目的就是便於管理,比如在Windows系統我們一般會分C盤,D盤,E盤等。
Linux只能建立4個主分割槽,如果需要建立更多的分割槽那麼久必須建立邏輯分割槽,其中邏輯分割槽需要佔用一個主分割槽。
檔案系統
Linux中的檔案系統也就是分割槽型別,在Windows中有NTEF,FAT32等,linux中常見的有Ext2、Ext3、Ext4、Linux swap、proc、sysfs、tmpfs等,可以通過mount命名檢視當前已掛載的檔案系統。
格式化
在前面建立完分割槽後有一步是要對分割槽進行格式化,其實在Windows系統中也是一樣,在建立好一個分割槽後也需要將分割槽格式化,只有格式化成具體的檔案型別才能使用。
掛載
在Windows中分割槽格式化後就可以使用,但是在Linux系統中必須將分割槽掛載到具體的路徑下才可以。
常用命令
lsblk檢視當前磁碟情況 df -lh檢視檔案系統情況 -l 檢視掛載點 parted -l 會列出檔案系統型別 fdisk -l 檢視當前未掛載硬碟
掛載新硬碟
掛載一個新硬碟基本思路是:建立分割槽、建立檔案系統、掛載。
一、檢視新硬碟
首先,檢視硬碟狀況:
fdisk -l
其中:
如果磁碟下面有類似:Disk /dev/sdc doesn’t contain a valid partition table;或者說磁碟下面沒有類似於:sdb1 sdb2 說明該磁碟未掛載
這裡假設看到硬碟名為 /dev/sdb
二、建立分割槽
dfisk /dev/sdb
根據提示,依次輸入”n”,”p” “1”,兩次回車,”wq”
意思就是新建一個主分割槽(1),大小是整個sdb磁碟,然後寫入。
注:上述操作為了簡便,只是建立一個主分割槽。其實一個磁碟最多有四個主分割槽(包括一個擴充套件分割槽),1-4都是主分割槽,我們也可以把一個分割槽作為擴充套件分割槽(通過df -lh 檢視到的system為Extended)
此時磁碟已經分割槽,但是還沒有檔案系統,磁碟依然不能用
三、寫入系統
mkfs.ext4 /dev/sdb
該命令會格式化磁碟並寫入檔案系統
四、掛載
比如掛載到/data下面
mkdir /data # 如果存在此步省略 mount /dev/sdb /data
五、設定開機自動掛載
以上只是臨時掛載,還需設定為開機自動掛載
vim /etc/fstab # 然後在內容結尾處增加一行(注意檔案型別要對應): /dev/sdb/dataext4defaults0 0
擴容
關於掛載到已有目錄
如果你要用來掛載的目錄裡面並不是空的,那麼掛載了檔案系統之後,原目錄下的東西就會暫時的消失。並不是被覆蓋掉,而是暫時的隱藏了起來,等到新分割槽被卸除之後,則原目錄原本的內容就會再次出來。
如果要永久掛載已有目錄,可以在新硬碟建立檔案系統後,先掛載到一個臨時目錄,然後把要擴充套件的目錄複製到這臨時目錄,然後刪除要擴充套件的目錄,再解除安裝臨時掛載點,重新掛載到要擴充套件的目錄上。舉例:
# 比如要擴充 /var # 在建立好檔案系統後 新建臨時掛載點 storage mkdir /storage # 將/dev/sdb1掛載到/storage下 mount /dev/sdb1/storage # 拷貝/var下的所有內容到新的硬碟 cp -pdr /var /storage # 或在/var 目錄下執行:find . -depth -print | cpio - pldvm /temp # 刪除當前/var目錄下的內容 rm -rf /var/* # 重新掛載硬碟到/var目錄 umount /dev/sdb1 mount /dev/sdb1 /var # 過程中若提示磁碟忙,使用fuser找出將正在使用磁碟的程式並結束掉; fuser -m -v /var fuser -m -v -i -k /var