Linux23:掛載與swap空間


掛載與swap空間

掛載

掛載與卸載

直接執行mount或加-l會顯示當前掛載信息,每行都是一個掛載設置,第一個字段代表設備文件名,第二個字段是on,然后是掛載點位置、文件系統、權限。

/proc和/sys都是掛載在內存。

掛載命令mount [-t 文件系統] [-L 卷標名] [-o 特殊選項] 設備文件名 掛載點文件系統是固定的,如果是硬盤就是iso9660,卷標名可以沒有,特殊選項有兩個要注意的,一個是remount表示重新掛載,修改特殊權限后需要進行該操作;還有一個是exec/noexec表示該文件系統中可執行文件可以執行或不能執行,默認是可以執行的。

掛載點就是一個空目錄,這個空目錄可以是根目錄下的mnt(建議U盤和移動硬盤)或media(軟盤或光盤),也可以在mnt下新建空目錄進行掛載,因為早期只有mnt一個建議掛載目錄。(這個目錄下如果有文件那么在掛載完成后這些信息會被隱藏,直至卸載又重新出現)

掛載光盤命令:mount -t iso9660 /dev/cdrom /mnt/cdrom/設備文件名是固定的,就是/dev/cdrom,或者寫/dev/sr0,cdrom是指向sr0的軟鏈接文件,如果有兩個光驅另一個就對應cdrom1和sr1。掛載光盤命令也可以省略文件系統:mount /dev/cdrom /mnt/cdrom/

linux真實機直接按光盤彈出按鈕是無效的,必須先進行卸載。卸載時要先退出光盤文件,然后執行:

umount 掛載點或設備文件名

掛載U盤時首先要把U盤插入,注意如果此時是用虛擬機操控linux的話就必須鼠標點擊到虛擬機內部,然后再插入U盤,否則是windows識別U盤。因為U盤的設備文件名和硬盤用同一個,所以要先執行fdisk -l來查詢此時U盤的設備文件名,執行后顯示sda為linux中的硬盤,而sdb是識別的U盤,設備文件名應該是sdb1。然后執行掛載U盤命令mount -t vfat /dev/sdb1 /mnt/usb/

如果硬盤是NTFS系統,則linux不能識別,必須安裝對應的驅動。

用mount掛載時也可以用mount UUID=xx 掛載點,這樣該命令就會重復使用,而不會因為系統每次識別設備的裝置名不同而修改掛載命令。mount也可以用LABEL來掛載。

在CentOS7中已經無需指定文件系統類型,直接mount命令后加設備文件名和掛載點即可,linux會自動分析最恰當的文件系統來掛載。

mount命令也可以把一個目錄掛載到另一個目錄下:mount --bind 目錄a 目錄b,這樣進入目錄a就相當於進入目錄b,而且如果這樣做的話兩個目錄的inode也會相同,這和硬鏈接非常像,但是對於某些不支持鏈接的程序而言,只能用mount命令掛載目錄。

自動掛載

要進行自動掛載需要修改/etc/fdisk文件。

文件每一行的字段的意義:

查看分區的UUID需要執行dumpe2fs 設備文件名,執行結果中的FilesystemUUID就是分區的UUID。

要進行自動掛載只需要把要掛載的寫入該文件中即可,注意要遵循該文件格式:

/dev/sdb5 /disk5 ext4 defaults 1 2

然后執行重新掛載命令查看是否文件中有錯誤:mount -a如果沒有錯誤就沒有提示,如果文件錯誤且不修改那么開機時系統就會崩潰。如果開機時有錯誤,那么就輸入root的密碼,然后執行修復命令:

mount -o remount,rw /,最后修改/etc/fdisk文件即可。(不能直接修改的原因是掛載時該文件被設置為只能讀,故要重掛載修改其權限)

設置開機掛載

設置開機掛載需要修改配置文件/etc/fstab:

從左到右的字段分別是磁盤裝置文件名/UUID/LABLE、掛載點、文件系統、文件系統參數(mount命令后的參數)、能否能被dump備份(一般設置為0即可,因為現在備份方案太多了)、是否以fsck檢查扇區(在開機中檢查文件系統是否完整,xfs系統並不適用這個命令,所以一般為0),每次要設置自動掛載時都要把掛載信息寫到該文件中,開機之后就會自動掛載了,掛載完成后還會吧掛載信息寫入/etc/mtab和/proc/mounts中。

如果該配置文件寫入有誤導致無法順利掛載開機,就要進入單人模式,然后修改根目錄掛載點的權限為讀寫,然后修改該配置文件即可:

mount -n -o remount,rw /

特殊裝置loop掛載

掛載iso映像文件:mount -o loop 映像文件路徑 掛載點

使用完iso映像文件記得卸除:umount 掛載點

不僅可以用loop掛載映像文件,還可以掛載大文件,相當於創造一個分區槽,下面是大文件掛載的步驟:

1、首先建立大型文件,可以用dd命令:

dd if=/dev/zero of=/sev/loopdev bs=1M count=512

if是輸入文件,意思是一個一直輸出0的裝置;of是輸出文件,也就是即將生成的大文件路徑;bs是block的大小;count是block的數量。

執行完畢后就生成了一個512M的大文件。

2、然后格式化大文件:mkfs.xfs -f 大文件路徑

可以用blkid加大文件路徑來查看裝置的UUID值

3、最后進行掛載:mount -o loop UUID="xx" 掛載點這里也可以用裝置名來掛載。

swap內存置換空間

當內存不足時,為了讓后續的程序可以繼續執行,就會將暫時不用的程序和數據移動到硬盤的內存置換空間中,一般來說,硬件資源充足時一般用不到swap,但是最好還是預留一部分用來應對特殊情況。

此外,休眠時也會將運行狀態記錄到swap中,而且有些程序在運行時,會利用swap來存放一些數據段。

如果安裝系統時沒設置swap,就需要設置一個swap分區,或者當分區不足時用大文件來充當swap。

執行命令查看swap空間的情況free -m

Mem是內存,buffers是緩沖區(指寫入數據時先將數據寫入內存中的緩沖區,然后再一次性寫入磁盤中),cached是緩存區(指讀取數據時將數據存在內存,下次讀時就直接讀取內存中的數據即可)。

分配swap空間就是在進行分區時修改分區ID(分區默認是83,應該改成82就是swap分區),在分區時輸入t修改分區ID,然后指定分區編號即可。swap分區設置完成之后需要進行重啟,或執行partprobe命令,然后再執行mkswap /dev/sdb1格式化,其中sdb1就是剛剛設置swap空間的那個分區。

然后將空間加入swap分區:swapon /dev/sdb1,將swap分區釋放swapoff /dev/sdb1

但是這種設置只能維持到關機,想要永久生效還是要修改文件/etc/fstab,加入一行:

/dev/sdb1 swap swap defaults 0 0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM