• 正文
    • 方法一:使用腳本進行systemd初始化啟動
    • 方法二:在/etc/rc.local 添加自動掛載腳本
    • 方法三:修改fstab文件進行開機啟動掛載
    • 查看掛載信息
    • 結(jié)語
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

雙系統(tǒng)下ubuntu自動掛載windows盤

03/01 09:16
540
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

今天給大家分享一篇ubuntu的系列文章之一,作為研發(fā)人員的我們,在有需要的時候我們會把電腦裝成雙系統(tǒng)。主要的工作在Ubuntu上面,window下面有時候會去用一些特定的軟件??傊畷a(chǎn)生交替使用,在電腦里面產(chǎn)生linux的文件系統(tǒng)和windos文件系統(tǒng)。

Ubuntu+Windows雙系統(tǒng)下互相訪問對方的文件是我們在雙系統(tǒng)中實現(xiàn)的部分,我安裝的ubuntu20直接可以看到win的盤,進行訪問,但是需要進行手工掛載,而windows環(huán)境下,對于Ubuntu系統(tǒng)一般來說比較麻煩,要么安裝一些配合的軟件,要么使用共享文件進行訪問。

今天的內(nèi)容不是描述如何訪問雙方的資源,而是在ubuntu20已經(jīng)識別處win的盤符之后,我們將該盤進行自動掛載到Ubuntu中。

歡迎關(guān)注微信公眾號:羽林君,或者添加作者個人微信:become_me

情節(jié)介紹:

使用雙系統(tǒng)時候,我打開我的ubuntu20,雖然可以查看windos的資源,但是都是需要自己手動進行掛載的,然后我自己去嘗試讓Ubuntu自己開機去掛載,這里給大家介紹三種方法,做一個簡單的分享,我是如何把下面兩個盤開機啟動掛載到我的Linux系統(tǒng)中的。

sudo fdisk -l

這個是我window系統(tǒng)盤和Linux系統(tǒng)所在的硬盤,其中nvme0n1p3為windows系統(tǒng),nvme0n1p4為linux盤

這個是我電腦加裝的一個1t固態(tài)硬盤

方法一:使用腳本進行systemd初始化啟動

常規(guī)的方法是自己寫一個腳本,然后放到/etc下面開機初始化的腳本去調(diào)用。從Ubuntu18.04 開始,系統(tǒng)不再使用initd管理系統(tǒng),而是改用systemd。雖然systemd設(shè)計更加合理和友好,但改變還是太大,跟之前的完全不同。Ubuntu 20中連/etc/rc.local文件也沒有了,所以我們現(xiàn)在要做一個開機啟動的腳本需要自己做一個system的配置文件。

1.寫服務(wù)文件

Systemctl管理了很多service啟動文件,我們可以在/lib/systemd/system/ 目錄看到很多的service

在/etc/systemd/system 也有一些service文件

我們就在這個目錄下面新增一個rc-local.service文件

首先復(fù)制/lib下面的rc-local.service文件到/etc下面,這樣我們可以參照

cp ?/lib/systemd/system/rc-local.service ? /etc/systemd/system/rc-local.service

其次修改對應(yīng)的文件

[Unit]
Description=/etc/rc.d/rc.local?Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.d/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.d/rc.local?start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]

WantedBy=multi-user.target

對應(yīng)的修改主要為我們自定義的ConditionFileIsExecutable ?ExecStart 對應(yīng)的目錄文件。新增了[Install]設(shè)置。

注:

[Install] ? ? ? ? ? ? ? 服務(wù)安裝的相關(guān)設(shè)置,可設(shè)置為多用戶

2、編輯對應(yīng)的 /etc/rc.d/rc.local 文件

sudo?mkdir?-p?/etc/rc.d?&?sudo?vi?/etc/rc.d/rc.local

具體內(nèi)容

#!/bin/bash
sudo?mount?/dev/nvme0n1p3?/media/lyn/win_sys/
sudo?mount?/dev/sda2?/media/lyn/win_data/

掛載我windows盤到我的指定目錄,其中/media/lyn/win_sys/
/media/lyn/win_data/ 是我早已經(jīng)建立好的空文件夾,專門用來掛載我的windows盤。

注:mount這里可以自動識別硬盤的文件系統(tǒng)。

最后 chmod +x /etc/rc.local

3、開啟 rc-local.service 服

sudo?systemctl?enable?rc-local

Created?symlink?/etc/systemd/system/multi-user.target.wants/rc-local.service??→?/etc/systemd/system/rc-local.service.

sudo?systemctl?start?rc-local

sudo?systemctl?status?rc-local

這樣我們就啟動了相應(yīng)的服務(wù),其中sudo systemctl status rc-local是用來查看該service啟動詳細信息,有些時候因為自己寫目錄的錯誤等問題,導(dǎo)致你會啟動失敗。

現(xiàn)在你就重啟電腦測試了。

方法二:在/etc/rc.local 添加自動掛載腳本

這個部分取決于你電腦的版本,前文也提到過從Ubuntu18.04 開始,系統(tǒng)不再使用initd管理系統(tǒng)。而initd也是一個linux開機管理的工具,它支持就是/etc/rc.local,這里的操作也是和方法一的第二步一樣,直接修改里面的文件

vi?/etc/rc.local

增加如下內(nèi)容

sudo?mount?/dev/nvme0n1p3?/media/lyn/win_sys/
sudo?mount?/dev/sda2?/media/lyn/win_data/

方法三:修改fstab文件進行開機啟動掛載

系統(tǒng)開機的時候會讀取/etc/fstab這個文件中的內(nèi)容,根據(jù)文件配置情況去掛載磁盤。

所以我們還有一種方法進行開啟自動掛載我們的windows盤,vi /etc/fstab

新增我的兩個windows盤符

UUID=f44d1976-8e56-4c37-8ce1-d345b8f923ea?/???????????????ext4????errors=remount-ro?0???????1

#?/boot/efi?was?on?/dev/nvme0n1p1?during?installation

UUID=8210-3579??/boot/efi???????vfat????umask=0077??????0???????1
/swapfile?????????????????????????????????none????????????swap????sw??????????????0???????0

新增的命令配置的參數(shù)如下:

<file?system>`,`<mount?point>`,`<type>`,`<options>`,`<dump>`,`<pass>

【設(shè)備名】 【掛載點】 【設(shè)備的類型】 【掛載時采用的參數(shù)】 【dump-freq】 【pass-num】

設(shè)備名,例如/dev/sda1。

掛載點,是一個系統(tǒng)上存在的文件夾。

設(shè)備的類型,例如ext4。用man fstab可以查到支持的類型。

掛載時采用的參數(shù),一般是defaults。

dump-freq和pass-num,一般設(shè)置為0,表示啟動時不檢查要掛載的設(shè)備

(設(shè)備的類型)注:

光盤或光盤鏡像:iso9660DOS fat16文件系統(tǒng):msdosWindows 9x fat32文件系統(tǒng):vfatWindows NT ntfs文件系統(tǒng):ntfsMount Windows文件網(wǎng)絡(luò)共享:smbfsUNIX(LINUX) 文件網(wǎng)絡(luò)共享:nfs

依據(jù)之前用fdisk -l查詢系統(tǒng)中當(dāng)前連接的硬盤信息看到,其中/dev/nvme0n1p3是我的一個windows系統(tǒng)盤,這里我直接掛載上去,其中ntfs代表文件系統(tǒng)為NTFS,iocharset=cp936 是簡體中文的意思。

/dev/nvme0n1p3?/media/lyn/win_sys/?ntfs?defaults,iocharset=cp936????????0?0

在執(zhí)行最后一個盤/dev/sda2的時候發(fā)現(xiàn),按照/dev/nvme0n1p3方法執(zhí)行是有問題的,最后發(fā)現(xiàn)這個部分是要用UUID進行源。因為/dev/sda2因為是單獨的一個盤,不一定每次都是分配叫為/dev/sda2。

下面是對Linux ?UUID的介紹:

vi ?/boot/grub/grub.cfg

通過這些命令我們可以看到我們硬盤對應(yīng)的UUID

ls?-l?/dev/disk/by-uuid

sudo?blkid?/dev/sda2

在/etc/fstab文件中增加

UUID=56EE33DBEE33B1DB?/media/lyn/win_data/?ntfs?defaults????????0?0

最終編輯效果如下:

UUID=f44d1976-8e56-4c37-8ce1-d345b8f923ea?/???????????????ext4????errors=remount-ro?0???????1

#?/boot/efi?was?on?/dev/nvme0n1p1?during?installation

UUID=8210-3579??/boot/efi???????vfat????umask=0077??????0???????1
/swapfile?????????????????????????????????none????????????swap????sw??????????????0???????0
/dev/nvme0n1p3?/media/lyn/win_sys/?ntfs?defaults,iocharset=cp936????????0?0
UUID=56EE33DBEE33B1DB?/media/lyn/win_data/?ntfs?defaults????????0?0

這時候我們就可以重啟看我們電腦掛載信息了。

查看掛載信息

df?-h

也可以用其他命令查看你的掛載情況:

cat?/proc/mounts??

結(jié)語

這就是我分享我在ubuntu啟動自動加載windows盤的方法,如果大家有更好的想法和需求,也歡迎大家加我好友交流分享哈。

作者:良知猶存,白天努力工作,晚上原創(chuàng)公號號主。公眾號內(nèi)容除了技術(shù)還有些人生感悟,一個認真輸出內(nèi)容的職場老司機,也是一個技術(shù)之外豐富生活的人,攝影、音樂 and 籃球。關(guān)注我,與我一起同行。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

一個程序員,喜歡寫文章,還喜歡打籃球,也喜歡吉他鋼琴的駁雜之人。日常更新自己,分享包括但不限于C/C++、嵌入式、物聯(lián)網(wǎng)、Linux等編程學(xué)習(xí)筆記,同時,公眾號內(nèi)包含大量的學(xué)習(xí)資源。歡迎關(guān)注,一同交流學(xué)習(xí),共同進步!