一、環境介紹
本機:Macos Big Sur系統
虛擬機軟件:vmware-fusion
虛擬機上虛擬的linux - centos7 系統
?
二、實現的效果
在mac上創建一個/Users/SH-Server/vm-vagrant目錄,作為之后和虛擬機linux系統 /data 文件夾的共享目錄。
我們最終想要達到的效果就是,我們在虛擬機linux上的/data 目錄下編寫代碼,我們mac系統上/Users/SH-Server/vm-vagrant 中的文件也發生相應改變。
相應的,在mac上的共享目錄/Users/SH-Server/vm-vagrant 中創建編寫文件,虛擬機中的linux /data下的文件和目錄也同樣發生變化。
即二者是同步的。
?
三、實現
1、 Mac上命令行的操作
# Mac上創建用于和虛擬機的linux共享的目錄
mkdir /Users/SH-Server/vm-vagrant
# 賦予權限
chmod -R 777 /Users/SH-Server/vm-vagrant
?
2、在mac上vmware-fusion上的操作
?
然后,添加共享文件夾,這里選擇的是macos上我們之前創建的vm-vagrant目錄,并且在左側重命名為data,你也可以根據自己的編程習慣重命名為其他的名稱。
?
?
3、在虛擬機上Linux的操作
我們在mac上設置好共享目錄后,該目錄就在 /mnt/hgfs 下。
我們在該目錄執行ls,會發現,多出了一個目錄,即 data目錄
默認這個目錄權限是不夠的,不足以讓我們操作該目錄,因此我們需要修改該目錄權限。
?
(1)賦予共享目錄777權限:
chmod -R 777 /mnt/hgfs/data
(2)軟連接到根目錄
注意,如果根目錄下已經有data目錄,要么刪除掉,要么你軟連接到其他目錄。
ln -s /mnt/hgfs/data /
(3)效果
在虛擬機 linux 上多出了一個/data目錄,在/data目錄下touch一個index.php文件,我們去mac上的共享目錄/Users/SH-Server/vm-vagrant,會發現同時也多了一個index.php文件。
我們在mac上的/Users/SH-Server/vm-vagrant 目錄下創建一個目錄或文件,虛擬機上的linux中,/data目錄下也多了相應目錄或文件。
說明設置共享目錄成功,已經實現了macos和虛擬機linux的目錄共享。
?
(4)如何取消該軟連接
第一步:操作vmware-fusion,取消該目錄的共享
標的3個地方,任選其一即可。
第二步:操作虛擬機上的linux,刪除掉相應目錄。
比如,我上面設置的Linux共享目錄在/data,那就刪掉/data目錄即可
rm -rf /data
?
?
四、其他同步方案:
1、在macos的系統偏好設置 > 共享中設置共享目錄,然后在虛擬機linux mount掛載
有無數的坑,效果并不好
2、使用 samba 實現mac和虛擬機linux目錄共享
和第一種差不多,并不好用
3、使用vagrant + virtualbox管理虛擬機集群
在mac上有很多莫名其妙的錯誤,同樣被pass掉。
4、使用phpstorm的development tools開發工具去同步服務器代碼
單純考慮mac和一臺虛擬機linux代碼同步,其實是可行的。
但如果需要mac同時和多個虛擬機linux系統進行文件目錄同步,即一個大的linux 虛擬機集群,則操作上將變得很麻煩。
經過多番實踐,最后還是認為這種方法最好用,因此記錄下來。
?
文章來源于:Mac 與虛擬機中的linux集群共享文件目錄設置
?
?
?