linux deploy用於在Android裝置上部署Linux環境,其原理大概是在Android的Linux層跑一個chroot或proot容器,然後再在容器中執行我們準備好的另外一個Linux系統。在使用Linux Deploy前,必須需要取得手機的Root權限。
本教學操作環境:linux7.3系統、Dell G3電腦。
Linux Deploy是一款可以在Android設備上部署Linux環境的應用,其原理大概是在Android的Linux層跑一個chroot或proot容器,然後再在容器中運行我們準備好的另外一個Linux系統。值得注意的是,這與我們熟知的虛擬機器技術不同,新的Linux系統將和Android系統平行運作(非專業解釋不要深究)。
在使用Linux Deploy之前,我們需要取得手機的Root權限(必須),取得Root權限後,由於原機自帶的Linux指令集不完整,我們需要安裝Busybox來擴充Linux指令集(不安裝也可以)。
Linux Deploy需要在Google商店安裝,其他安卓應用程式商店沒有,以下提到的軟體都只能在Google商店安裝,文章下方也提供下載地址
安裝完成後,我們將使用Linux Deploy在Android裝置上部署Ubuntu系統:
點擊介面最右下方的"下載"圖示進入設定檔的設定介面進行如下設定(我也不知道開發者為什麼會用這麼一個"下載"圖示作為設定檔設定介面的圖示):
Containerization method:"chroot"
發行版:"Ubuntu"
架構:保持預設值
發行版版本:"yakkety"(即Ubuntu 16.10)
安裝類型:這一選項的話有兩種建議,"目錄"和"檔案",如果對Linux不太熟悉並且/data分區剩餘空間≥2g的話,建議使用"目錄"的安裝方式,如果對Linux比較熟悉或者/data分區剩餘空間 安裝路徑:"安裝路徑"選擇"目錄"時,這個選項將定義系統安裝在哪個路徑中,預設路徑為${ENV_DIR}/rootfs/linux,即安裝在
/data/user/0/ru.meefik.linuxdeploy/env/rootfs/linux目錄下。 "安裝類型"選擇"檔案"時,這個選項將定義Linux系統安裝在哪個映像檔中,預設值為
外部儲存/linux.img。
DNS伺服器:可以保持預設值,也可自訂填入DNS伺服器位址(如114.114.114.114等)
本地化:建議維持預設值POSIX,如果有其他需求,例如需要讓ssh返回結果為中文或讓圖形介面的顯示語言為中文時,選擇"zh_CN.UTF8"
INIT/MOUNTS項目:若有需求時可以設定,無需求可以忽略。
允許SSH伺服器啟動:開啟此選項
SSH設定:保持預設
允許圖形介面啟動:若有需求可以設定,這裡暫時不開啟這個選項(之後的文章將會為大家介紹如何部署圖形介面)。
設定完成後,按返回鍵返回應用主介面,按下選單鍵,選擇"安裝"開始Linux系統的安裝,安裝過程中需要一直保持網路連線(建議在WIFI下安裝,大概需要幾百兆流量)。
當看到終端輸出">>>deploy"時,代表安裝已開始:
當看到終端輸出"
# 點擊主介面下方的"啟動"按鈕可以啟動新安裝的系統,點擊"停止"可以停止系統。
至此,系統部署部分描述完畢。
部署完畢後,我們需要用到lJuiceSSH/ConnectBot之類的SSH工具來登入系統(這裡以JuiceSSH為例)。
成功啟動系統後我們開啟JuiceSSH,依序點擊"連線" - 右下角" "按鈕進入新連線介面:
暱稱:可隨意填寫,我們以"Localhost - Android"為例類型:SSH 位址:127.0.0.1
認證:選擇"新建"跳到"新建認證"介面: 暱稱:同樣可以隨意填寫,我們同樣以" Localhost - Android"為例使用者名稱:填寫"設定檔設定"介面的"使用者名稱",預設為android 密碼:填寫"設定檔設定"介面的設定的"使用者密碼"
# 點擊右上角的"√"圖示儲存並返回到"新建連接"介面,再次點擊"√"圖示儲存,在"連線清單"中點選剛剛新建的這個專案連接到我們剛剛部署好的系統,連接成功後介面如下:
因為我們是透過普通使用者android登陸系統的,接下來我們需要設定超級使用者(root)的密碼並且以超級使用者的身份登陸系統:
在終端機中鍵入:
sudo passwd root
終端將提示使用者輸入root使用者的密碼並且再次輸入一次以確認(輸入密碼時密碼將不可見,連*都不會顯示),設定完畢後,在終端機鍵入命令su並輸入剛剛設定好的root用戶密碼即可切換到root用戶。
檔案的管理: 如果你是透過"目錄"方式部署的Linux系統,那麼你可以直接使用R.E.管理員存取/data/user/0/ru.meefik.linuxdeploy/env/ rootfs/linux
即可管理新系統中的文件,如果你是透過"文件"方式部署的Linux系統,管理文件等操作就得依靠SFTP了(當然使用SSH方式也沒問題,但是還是覺得SFTP更方便些)。當我們使用普通使用者身分登入SFTP時,由於權限原因,我們無權操作大多數檔案。所以我們需要以超級使用者登入SFTP。但預設配置是不允許root使用者登入SSH和SFTP的,所以我們需要進行以下設定:
在Linux Deploy中啟動部署好的系統,以android使用者登入SSH,在終端機中執行:
sudo apt-get install -y vim #安裝vim編輯器
當然啦,使用系統自帶的vi編輯器也是可以的,如果你對vi編輯器比較熟悉也可以使用vi編輯器編輯文件。 vim編輯器安裝完成後我們繼續在終端機執行:
vim /etc/ssh/sshd_config #使用vim編輯器開啟/etc/ssh/sshd_config這個檔案
開啟檔案後,鍵入檔案後,鍵入這個檔案
# 其中:
用戶名為:root密碼為剛剛設定好的root用戶的密碼主機名為:127.0.0.1
### 當然,修改完sshd_config文件,停止並啟動Linux系統後,你也可以直接以root用戶連接到SSH了。 介紹完安裝,介紹一下卸載吧~你可以透過以下方法完全卸載Linux Deploy:### 1.如果你使用"目錄"的方式部署的Linux系統,那麼在Linux Deploy內"停止"Linux系統,接著直接卸載Linux Deploy並重啟手機即可完全卸載; 2.如果你使用"文件(鏡像)"方式部署的Linux系統,你需要先"停止"Linux系統,然後刪除放置在內置存儲下的鏡像文件,鏡像文件路徑就是上文在部署Linux系統之前提到的"安裝路徑"這一項,如果此項目未經修改,則鏡像路徑為外部儲存/linux.img
,接著卸載Linux Deploy並重新啟動手機即可完全卸載。
安裝圖形環境
修改以下設定項:
# INIT: 打勾:啟用自訂腳本執行(INIT的其他設定保持不變)
圖形介面:
打勾:允許圖形介面啟動
圖形子系統:VNC
# 圖形化介面設定:保持預設配置
# 桌面環境:按需選擇,這裡選擇的是LXDE
其中,"Address"項目為VNC伺服器所在的位址。由於我們需要連接本機的VNC伺服器,所以填寫127.0.0.1即可,此外我們還需要在位址後面指定VNC端口,因為剛剛終端返回的資訊:New 'X' desktop is localhost:1
指定了這次桌面會話號碼為1,所以連接埠就為5900 1=5901。如果我們開啟了多個虛擬桌面,它們的會話號碼為2,3,4...,那麼各自的連接埠即為5902,5903,5904...依次類推。並且,伺服器位址與連接埠之間需要用英文冒號隔開。 "Name"項目為使用者為此VNC會話指定的位址,我們為了區別其他會話,填寫的是Localhost - Ubuntu@Xfce,實際上隨便填寫什麼都可以。
這些資訊填入完成後,點選"CREATE"按鈕提交:
# 確認訊息無誤後,點擊下面綠色的"CONNECT"按鈕開始連接VNC會話(如果你之前沒有設定過VNC密碼,但在連接VNC連接過程中仍然需要你輸入密碼時,那麼你可以輸入android使用者的密碼試試):
2. vncserver預設的解析度是1024×768,但市面上大部分的手機螢幕的解析度都是720P(1280×720),1080P(1920×1080),甚至2K(2560×1440), vncserver預設的1024×768解析度可能會造成VNC畫面不能填滿滿螢幕的情況,這時候,我們有必要修改VNC解析度以適應螢幕,經過測試,拿1080P螢幕來說,將解析度設為720P可使VNC影像充滿螢幕且不影響顯示效果。調節方法就是每次執行vncserver
指令時在後面加上-geometry
參數,例如我需要把VNC解析度調為720P(1280×720),那麼在啟動vncserver時,執行:
vncserver -geometry 1280x720
# 即可將新開啟的VNC虛擬會話螢幕解析度設為1280×720。值得注意的是,指令中的1280x720
裡的x
是小寫字母x
,而不是數學中的乘號×
#。
下面是1280×720解析度和1024×768解析度的比較(將VNC Viewer畫面縮小到最小):
vim ~/.bashrc #編輯~/.bashrc
vncserver
指令後,新開啟的VNC會話的解析度都會被設為1280×720。升級ubuntu
會發現ubuntu只能安裝到18.04升級的方法就是安裝Ubuntu後再直接升級。sudo apt install update-manager-core
sudo apt update && sudo apt upgrade sudo do-release-upgrade
sudo apt install gnupg gnupg1 gnupg2 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C
apt clean apt autoclean sudo apt update sudo apt upgrade -y sudo apt dist-upgrade
## /etc/apt/source.list deb http://ports.ubuntu.com/ focal multiverse main universe deb-src http://ports.ubuntu.com/ focal multiverse main universe deb http://ports.ubuntu.com/ focal-updates main universe multiverse deb-src http://ports.ubuntu.com/ focal-updates main universe multiverse deb http://ports.ubuntu.com/ focal-security main universe multiverse deb-src http://ports.ubuntu.com/ focal-security main universe multiverse
以上是linux deploy有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!