一. 前言
在Digitalocean上,給主機(jī)添加硬盤(pán)時(shí),為了免去分區(qū)、格式化、掛載等麻煩,可以選擇讓運(yùn)營(yíng)商幫忙自動(dòng)完成以上操作。
查看文檔可知,運(yùn)營(yíng)商在添加硬盤(pán)時(shí),在掛載階段自動(dòng)執(zhí)行了以下腳本:
1). 創(chuàng)建掛載目錄。
mkdir -p /mnt/volume
2). 掛載硬盤(pán)(臨時(shí)掛載,主機(jī)重啟后失效)。
mount -o discard,defaults /dev/disk/by-id/scsi-0DO_Volume_volume /mnt/volume
3). 修改/etc/fstab,使得掛載持久化,主機(jī)重啟后將自動(dòng)掛載硬盤(pán)。
echo /dev/disk/by-id/scsi-0DO_Volume_volume /mnt/volume ext4 defaults,nofail,discard 0 0 | sudo tee -a /etc/fstab
隨后,當(dāng)計(jì)劃按照需要將修改掛載目錄/mnt/volume修改為/mnt/data時(shí),只需要?jiǎng)?chuàng)建新的掛載目錄,修改/etc/fstab的相關(guān)內(nèi)容即可:
/dev/disk/by-id/scsi-0DO_Volume_volume /mnt/data ext4 defaults,nofail,discard 0 0
非常方便。
幾年前確實(shí)可以這樣操作,然而,這次實(shí)際操作時(shí)發(fā)現(xiàn),/etc/fstab文件中并不存在對(duì)應(yīng)的掛載配置。
難道運(yùn)營(yíng)商沒(méi)有做持久化掛載,但重啟主機(jī)發(fā)現(xiàn),掛載是持久化的。當(dāng)強(qiáng)行在/etc/fstab文件中添加掛載配置:
/dev/disk/by-id/scsi-0DO_Volume_volume /mnt/data ext4 defaults,nofail,discard 0 0
重啟主機(jī)后會(huì)發(fā)現(xiàn),硬盤(pán)同時(shí)被掛載到了兩個(gè)目錄:
/mnt/volume
/mnt/data
這就說(shuō)明:
1). 官方文檔關(guān)于自動(dòng)掛載硬盤(pán)的說(shuō)明已經(jīng)過(guò)期。
2). Linux還有其它自動(dòng)掛載硬盤(pán)的方式。
二. Linux開(kāi)機(jī)自動(dòng)掛載硬盤(pán)的幾種方式
1. /etc/fstab配置硬盤(pán)自動(dòng)掛載。
/etc/fstab管理硬盤(pán)的自動(dòng)掛載的是最常規(guī)的方式,本文不再贅述。
2. 開(kāi)發(fā)初始化腳本掛載硬盤(pán)。
/etc/rc.local文件本質(zhì)上是一個(gè)shell腳本文件,可用于添加開(kāi)機(jī)啟動(dòng)命令,系統(tǒng)啟動(dòng)時(shí)將按順序執(zhí)行其中的命令。
因此,可直接將mount命令:
mount -o discard,defaults /dev/disk/by-id/scsi-0DO_Volume_volume /mnt/volume
寫(xiě)入/etc/rc.local,從而實(shí)現(xiàn)硬盤(pán)的開(kāi)機(jī)自動(dòng)掛載。
3. 使用Systemd自動(dòng)掛載硬盤(pán)。
Linux systemd,不僅可以用來(lái)關(guān)閉與開(kāi)啟服務(wù),也提供處理掛載和自動(dòng)掛載文件系統(tǒng)的新方式,即以一項(xiàng)服務(wù)的方式了管理文件系統(tǒng)的掛載。
Systemd擴(kuò)展了fstab文件的定義方式,合理使用Systemd提供的掛載選項(xiàng),可以完美地解決以前使用/etc/fstab時(shí)一些痛點(diǎn)。
1). systemd.mount可以讓那些要求在網(wǎng)絡(luò)可用時(shí)的文件系統(tǒng)在網(wǎng)絡(luò)已經(jīng)可用的情況下才去掛載,還可以定義等待網(wǎng)絡(luò)可用的超時(shí)時(shí)間,從而避免在開(kāi)機(jī)過(guò)程中長(zhǎng)時(shí)間卡住。
2). systemd可以讓某個(gè)掛載項(xiàng)自動(dòng)開(kāi)始掛載和自動(dòng)卸載,而不是在開(kāi)機(jī)時(shí)掛載后永久掛載在后臺(tái)。
3). systemd可以讓系統(tǒng)跳過(guò)失敗的掛載,避免系統(tǒng)因硬盤(pán)掛載問(wèn)題而啟動(dòng)失敗,無(wú)法進(jìn)入系統(tǒng)(只能進(jìn)入臨時(shí)修復(fù)系統(tǒng))。
…
當(dāng)前Digitalocean提供的硬盤(pán)自動(dòng)掛載服務(wù)正是使用了Systemd的掛載方式。查看/etc/systemd/system目錄即可看到一個(gè)名為mnt-volume.mount的文件:
/etc/systemd/system/mnt-volume.mount
該文件定義了一個(gè)掛載項(xiàng):
[Unit]
Description=Mount DO Volume volume
[Mount]
What=/dev/disk/by-uuid/d946870c-ef31-48ee-a9f1-446acaa56f46
Where=/mnt/volume
Options=defaults,nofail,discard,noatime
Type=ext4
[Install]
WantedBy = multi-user.target
通過(guò)這種掛載方式,我們可以像管理一項(xiàng)服務(wù)一樣來(lái)管理掛載:
systemctl status mnt-volume.mount
systemctl enable mnt-volume.mount
systemctl disable mnt-volume.mount
systemctl start mnt-volume.mount
systemctl stop mnt-volume.mount
Systemd的文件掛載選項(xiàng)非常豐富,具體情況本文不再贅述。
4. 通過(guò)AutoFs服務(wù)來(lái)管理硬盤(pán)掛載。
AutoFs服務(wù)程序與mount命令的不同之處在于它是一種守護(hù)進(jìn)程,只有檢測(cè)到用戶(hù)試圖訪(fǎng)問(wèn)一個(gè)尚未掛載的文件系統(tǒng)時(shí)才自動(dòng)的檢測(cè)并掛載該文件系統(tǒng)。
Autofs非常方便,主要有兩點(diǎn):
1). 設(shè)置開(kāi)機(jī)不一定要掛載的目錄,當(dāng)用戶(hù)訪(fǎng)問(wèn)對(duì)應(yīng)文件系統(tǒng)的時(shí)候才實(shí)現(xiàn)自動(dòng)掛載。
2). 用戶(hù)不使用自動(dòng)掛載的目錄一段的時(shí)間之后,文件系統(tǒng)會(huì)被自動(dòng)卸載(默認(rèn)時(shí)間為5分鐘)。
AutoFs屬于第三方軟件,需要額外安裝:
yum install -y autofs文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-485847.html
AutoFs的具體使用方法本文同樣不進(jìn)行具體說(shuō)明。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-485847.html
到了這里,關(guān)于Linux開(kāi)機(jī)自動(dòng)掛載文件系統(tǒng)的幾種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!