linux deploy有什么用

linux deploy用于在Android設備上部署Linux環境,其原理大概是在Android的Linux層跑一個chroot或者proot容器,然后再在容器中運行我們準備好的另外一個Linux系統。在使用Linux Deploy前,必須需要獲取手機的Root權限。

linux deploy有什么用

本教程操作環境:linux7.3系統、Dell G3電腦。

Linux Deploy是一款可以在Android設備上部署Linux環境的應用,其原理大概是在Android的Linux層跑一個chroot或者proot容器,然后再在容器中運行我們準備好的另外一個Linux系統。值得注意的是,這與我們熟知的虛擬機技術不同,新的Linux系統將和Android系統平行運行(非專業解釋不要深究)。

在使用Linux Deploy之前,我們需要獲取手機的Root權限(必須),獲取Root權限后,由于原機自帶的Linux命令集不完整,我們需要安裝Busybox來擴充Linux命令集(不安裝也可以)。

Linux Deploy需要在谷歌商店安裝,其他安卓應用商店沒有,以下提到的軟件都只能在谷歌商店安裝,文章下方也提供下載地址

linux deploy有什么用

安裝完成后,我們將使用Linux Deploy在Android設備上部署Ubuntu系統:

  點擊界面最右下方的”下載”圖標進入配置文件的設置界面進行如下設置(我也不知道開發者為什么會用這么一個”下載”圖標作為配置文件設置界面的圖標):

  Containerization method:”chroot”

  發行版:”Ubuntu”

  架構:保持默認值

  發行版版本:”yakkety”(即Ubuntu 16.10)

  源地址:http://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/(這里我們采用默認方式部署,即在軟件源中下載Linux組件和必要的軟件包的方式部署,因為默認源速度不佳,為了不下載一天一夜,我們這里使用的是清華大學的開源鏡像源,如果你采用Repository方式部署(之后的文章會講到),這里的”源地址”應該填寫Repository文件(后綴為tgz/tar.gz)文件的本地或遠程路徑)

  安裝類型:這一選項的話有兩種建議,”目錄”和”文件”,如果對Linux不太熟悉并且/data分區剩余空間≥2g的話,建議使用”目錄”的安裝方式,如果對Linux比較熟悉或者/data分區剩余空間

  安裝路徑:”安裝路徑”選擇”目錄”時,這個選項將定義系統安裝在哪個路徑中,默認路徑為${ENV_DIR}/rootfs/linux,即安裝在/data/user/0/ru.meefik.linuxdeploy/env/rootfs/linux目錄下。”安裝類型”選擇”文件”時,這個選項將定義Linux系統安裝在哪個鏡像文件中,默認值為外置存儲/linux.img。

  鏡像大小(MB)(安裝類型”選擇”文件”時可用):這個選項將定義系統所在鏡像文件的大小。系統安裝之前將在安裝目錄創建一個大小為設置的鏡像大小的空文件用來存放系統文件和數據(相當于新Linux系統的總磁盤空間)。建議不要用默認值,填寫2048m足夠了。

  文件系統(安裝類型”選擇”文件”時可用):選擇”自動”。

  用戶名:這個選項為登錄系統時的用戶名,默認為”android”,可以隨意更改。

  用戶密碼:這個選項為Ubuntu系統中用戶的密碼,可以根據自己的習慣填寫。

  Privileged Users:保持默認值

  DNS服務器:可以保持默認值,也可自定義填寫DNS服務器地址(如114.114.114.114等)

  本地化:建議保持默認值POSIX,如果有其他需求,比如需要讓ssh返回結果為中文或者讓圖形界面的顯示語言為中文時,選擇”zh_CN.UTF8″

  INIT/MOUNTS項:若有需求時可以設置,無需求可以忽略。

  允許SSH服務器啟動:打開此選項

  SSH設置:保持默認

  允許圖形界面啟動:若有需求可以設置,這里暫時不打開這個選項(之后的文章將會為大家介紹如何部署圖形界面)。

linux deploy有什么用

  設置完成后,按返回鍵返回到應用主界面,按下菜單鍵,選擇”安裝”開始Linux系統的安裝,安裝過程中需要一直保持網絡連接(建議在WIFI下安裝,大概需要幾百兆流量)。

  當看到終端輸出”>>>deploy”時,代表安裝已開始:

linux deploy有什么用

  當看到終端輸出”

linux deploy有什么用

  點擊主界面下方的”啟動”按鈕可以啟動新安裝的系統,點擊”停止”可以停止系統。

linux deploy有什么用

  至此,系統部署部分描述完畢。

  部署完畢后,我們需要用到lhttp://mirror.tuna.tsinghua.edu.cn/ubuntu-ports//ConnectBot之類的SSH工具來登錄系統(這里以http://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/為例)。

  成功啟動系統后我們打開JuiceSSH,依次點擊 “連接” – 右下角”+”按鈕 進入新建連接界面:

  昵稱:可隨意填寫,我們以”Localhost – Android”為例   類型:SSH   地址:127.0.0.1

linux deploy有什么用

  認證:選擇”新建”跳轉到”新建認證”界面:   昵稱:同樣可以隨意填寫,我們同樣以”Localhost – Android”為例   用戶名:填寫”配置文件設置”界面的”用戶名”,默認為android   密碼:填寫”配置文件設置”界面的設置的”用戶密碼”

linux deploy有什么用

  點擊右上角的”√”圖標保存并返回到”新建連接”界面,再次點擊”√”圖標保存,在”連接列表”中點擊剛剛新建的這個項目連接到我們剛剛部署好的系統,連接成功后界面如下:

linux deploy有什么用

  因為我們是通過普通用戶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這個文件

  打開文件后,鍵入i進入編輯模式,點擊終端任意空白位置可以彈出特殊鍵鍵盤,使用上下光標滾動瀏覽文件,在文件的#Authentication部分找到PermitRootLogin這一項,將其改為yes,改動完成后點擊特殊鍵鍵盤中的”ESC”鍵退出編輯模式,鍵盤鍵入:wq!保存并強制退出文件完成對文件的編輯操作。

linux deploy有什么用

  打開Linux Deploy,停止后再啟動Linux系統。打開”Turbo客戶端” – 側邊欄 – 創建一個新賬戶 – SFTP 來新建一個SFTP連接(部分文件管理器,比如ES文件瀏覽器(ESFileExplorer),SE文件管理器(SolidExplorer)也帶有SFTP功能,如果不想安裝TurboFTP的話,可以用它們來代替):

linux deploy有什么用

  其中:

  用戶名為:root   密碼為剛剛設置好的root用戶的密碼   主機名為:127.0.0.1

  其他項保持默認,點擊右上角的”保存”圖標保存配置,在側邊欄的連接列表中我們將以root用戶連接到SFTP并管理文件:

linux deploy有什么用

  當然,修改完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 

linux deploy有什么用
linux deploy有什么用
linux deploy有什么用

  配置完畢后,回到主界面,按下”菜單鍵”,選擇”配置”讓我們剛才的的設置生效:

linux deploy有什么用
linux deploy有什么用

  配置完畢后,點擊底部的”停止”按鈕停止Linux系統,再點擊”啟動”按鈕啟動Linux系統,接著我們登入SSH,在終端中執行:

sudo apt-get install ttf-wqy-zenhei ? ?#安裝中文字庫

  中文字庫安裝完畢后,執行以下命令啟動VNC:

vncserver

  終端會返回以下結果:

New ‘X’ desktop is localhost:1 ?Starting applications specified in /home/android/.vnc/xstartup Log file is /home/android/.vnc/localhost:1.log
復制

  證明vncserver已啟動成功。

  (注意,在某些時候,第一次執行vncserver命令時系統將要求你設定一個小于8位數的VNC密碼,你需要輸入兩次密碼之后提交,VNC密碼設定完成之后還會有一個提示,不用理會,鍵入n提交即可)

進入圖形界面:

  接著我們使用VncViewer來連接到我們剛剛部署好的的圖形界面:

  打開VncViewer,點擊右下角的”+”按鈕添加VNC會話:

  Address:   127.0.0.1:5901   Name:   Localhost – Ubuntu@Xfce

  其中,”Address”項為VNChttp://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/所在的地址。由于我們需要連接本機的VNC服務器,所以填寫127.0.0.1即可,此外我們還需要在地址后指定VNC端口,因為剛剛終端返回的信息:New ‘X’ desktop is localhost:1指定了此次桌面會話號為1,所以端口就為5900+1=5901。如果我們開啟了多個http://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/,它們的會話號為2,3,4…,那么各自的端口即為5902,5903,5904…依次類推。并且,服務器地址與端口之間需要用英文冒號隔開。”Name”項為用戶為此VNC會話指定的地址,我們為了區別其他會話,填寫的是Localhost – Ubuntu@Xfce,實際上隨便填寫什么都可以。

  這些信息填寫完畢后,點擊”CREATE”按鈕提交:

linux deploy有什么用
linux deploy有什么用

  確認信息無誤后,點擊下面綠色的”CONNECT”按鈕開始連接VNC會話(如果你之前沒有設定過VNC密碼,但在連接VNC連接過程中仍然需要你輸入密碼時,那么你可以輸入android用戶的密碼試試):

linux deploy有什么用
linux deploy有什么用

  好了…圖形界面的部署過程到此為止,剩下的你們自己折騰吧(/doge臉)~

可能遇到的問題:

  1. 當你開啟了一個VNC會話,停止Linux系統再啟動Linux系統后,再次執行vncserver命令,系統可能會報出以下錯誤:

linux deploy有什么用

  這時候,你可以執行以下兩條命令:

rm -rf /tmp/.X[1-9]-lock
rm -rf /tmp/.X11-unix/X[1-9]

  執行完畢后,再執行vncserver,會話號就會被重置為1了。為了防止每次停止再啟動Linux系統后帶來的這個問題,我們可以編輯/etc/rc.local文件,在此文件的exit 0之前插入這兩條命令:

sudo vim /etc/rc.local ? ?#編輯/etc/rc.local

linux deploy有什么用

  編輯完成后,保存即可,進行這步操作后,在啟動Linux系統后和停止Linux系統之前,Linux Deploy都會替我們執行這兩條命令,這樣一來之后就不會再報錯了~

  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 1280×720

  即可將新開啟的VNC虛擬會話屏幕分辨率設為1280×720。值得注意的是,命令中的1280×720里的x是小寫字母x,而不是數學中的乘號×。

  下面是1280×720分辨率和1024×768分辨率的對比(將VNC Viewer畫面縮小到最小):

linux deploy有什么用
linux deploy有什么用

  很明顯,1080P屏幕上,將VNC分辨率設為1280×720可使圖像填充滿屏幕且視覺效果更佳。

  如果你覺得每次啟動vncserver時輸這么一長串命令有點兒麻煩,那么可以編輯~/.bashrc文件,在下圖所示的位置增加一行alias定義:

vim ~/.bashrc ? ?#編輯~/.bashrc

alias vncserver=’vncserver -geometry 1280×720′
復制

linux deploy有什么用

  之后,每次執行vncserver命令后,新開啟的VNC會話的分辨率都會被設為1280×720。

升級ubuntu

會發現ubuntu只能安裝到18.04

升級的方法就是安裝Ubuntu后再直接升級。

用VNC登入桌面後,用終端機安裝更新器

sudo apt install update-manager-core

更新全部套件至最新版

sudo apt update && sudo apt upgrade sudo do-release-upgrade

如果出現authenticate ‘focal.tar.gz’ against ‘focal.tar.gz.gpg’ Authentication failed錯誤,先安裝gnupg並執行以下指令:

sudo apt install gnupg gnupg1 gnupg2 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C

再次執行sudo do-release-upgrade,輸入y開始更新系統,按照終端的指示更新。

如果提示Please Install All Available Updates Before Upgrading

apt clean  apt autoclean sudo apt update  sudo apt upgrade -y  sudo apt dist-upgrade

再次執行sudo do-release-upgrade,輸入y開始更新系統,按照終端的指示更新。

不出意外的話,系統正常升級完了。

升級完之后還需要回到linux deploy的配置項中把用戶名改成root,密碼可以保持不變,原因是升級后,原來的android這個用戶名就沒有root權限了

修改用戶名之后一定要點linux deploy的配置選項重新配置

# 2023.3.8更新 ? 如果你遇到“The required dependency ‘apt (>= 2.0.4)’ is not installed.”需要修改/etc/apt/source.list文件

## /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

相關推薦:《http://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享