commit
db820988a0
|
@ -1,5 +1,5 @@
|
|||
# <center>ssh基础用法</center>
|
||||
#### <center>作者:优麒麟</center>
|
||||
#### <center>作者:小K</center>
|
||||
#### <center>2022-04-22 23:36:00</center>
|
||||
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
|||
ssh 用户名@主机地址 -p 端口号
|
||||
然后会提示输入密码,这个密码就是你要登录的用户名的密码,这个用户必须是存在的,而且是允许登录的才行,一般情况下大家在安装系统时候建立的用户是没问题的,而且密码默认不回显.
|
||||
|
||||
他还可以代理x11协议,把界面传输到本地,但是实际上是在远程主机运行,但是需要远程主机安装xauth,并且,本地和远端都启动x11代理才可以,实际测试的时候有的应用可能是不支持的,此外,如果本地系统是win的话,可能不好用,如果是优麒麟那么只要网速足够还是挺好的,缺点是,有可能无法使用中文输入法,只能复制粘贴,虽然可以通过配置的方式让输入法启动,但是我没成功过。另外就是有一个端口映射的作用,一般来说称之为ssh隧道,可以把远端的端口映射到本地,也可以把本地的端口映射到远程,也可以改成双向的,这样可以用作内网穿透,或者是把本地服务暴露在远端,也可以把远端的端口变成本地访问,而且是用ssh加密过的不用担心被窃听等,一般情况下开发会用的比较多,把数据库的端口映射到本地的某个端口,直接访问,不用把公网的对应端口打开,提高安全性,再比如说vnc,把vnc的端口映射到本地,虽然vncview提示不加密但是中间传输的数据是经过ssh加密的,不用担心被窃听,而且可以关闭对应端口的防火墙,不用担心被别人扫描到。ssh可以禁用密码登录只使用密钥登录,也可以两者并存,只要有一个公钥和私钥,然后把公钥放到特定的文件里就可以直接使用私钥免密登录。
|
||||
他还可以代理x11协议,把界面传输到本地,但是实际上是在远程主机运行,但是需要远程主机安装xauth,并且,本地和远端都启动x11代理才可以,实际测试的时候有的应用可能是不支持的,此外,如果本地系统是win的话,可能不好用,如果是linux那么只要网速足够还是挺好的,缺点是,有可能无法使用中文输入法,只能复制粘贴,虽然可以通过配置的方式让输入法启动,但是我没成功过。另外就是有一个端口映射的作用,一般来说称之为ssh隧道,可以把远端的端口映射到本地,也可以把本地的端口映射到远程,也可以改成双向的,这样可以用作内网穿透,或者是把本地服务暴露在远端,也可以把远端的端口变成本地访问,而且是用ssh加密过的不用担心被窃听等,一般情况下开发会用的比较多,把数据库的端口映射到本地的某个端口,直接访问,不用把公网的对应端口打开,提高安全性,再比如说vnc,把vnc的端口映射到本地,虽然vncview提示不加密但是中间传输的数据是经过ssh加密的,不用担心被窃听,而且可以关闭对应端口的防火墙,不用担心被别人扫描到。ssh可以禁用密码登录只使用密钥登录,也可以两者并存,只要有一个公钥和私钥,然后把公钥放到特定的文件里就可以直接使用私钥免密登录。
|
||||
|
||||
2. SSh的一个小技巧,ssh如果在一段时间不响应的话可以修改心跳时间,每隔一定时间发送一个空包,保持响应,一般来说我不建议设置的时间超过30,如果是网络环境差点30都可能断,一般设置成15,极端情况设置成5,这里以秒为单位。
|
||||
还有就是如果退出了ssh,那么正在运行的程序就会被杀死,可以使用screen命令让程序运行在后台,然后Ctrl+a+d来返回,这样就可以安心的退出ssh,不用担心程序挂了,恢复的命令也有。
|
||||
|
@ -28,8 +28,8 @@
|
|||
|
||||
|
||||
本文撰写过程中参考了以下文章:
|
||||
[https://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=193097](https://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=193097)
|
||||
[https://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=193211](https://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=193211)
|
||||
[https://forum.openkylin.top/forum.php?mod=viewthread&tid=193097](https://forum.openkylin.top/forum.php?mod=viewthread&tid=193097)
|
||||
[https://forum.openkylin.top/forum.php?mod=viewthread&tid=193211](https://forum.openkylin.top/forum.php?mod=viewthread&tid=193211)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,165 +0,0 @@
|
|||
# <center>优麒麟 22.04 安装 Fcitx5 输入法</center>
|
||||
#### <center>作者:ymz316</center>
|
||||
#### <center>2022-06-09</center>
|
||||
<br>
|
||||
|
||||
Fcitx5 是继 Fcitx 之后的新一代输入法框架,优麒麟2204 默认安装的是 Fcitx,而 Fcitx 和 Fcitx5 是相互冲突的,因此安装Fcitx5之前需要先卸载 Fcitx。关于 Fcitx5 的学习文档,推荐 Archlinux 关于 Fcitx5 的 [wiki 文档](https://wiki.archlinux.org/title/Fcitx5_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87))
|
||||
|
||||
## 一、卸载 Fcitx 输入法
|
||||
|
||||
### **1.首先看看大概装了哪些 Fcitx 输入法组件**
|
||||
|
||||
```
|
||||
$ apt search fcitx | grep 安装
|
||||
fcitx/jammy,jammy,now 1:4.2.9.8-5 all [已安装]
|
||||
fcitx-baidupinyin/jammy-partner,now 1.0.1.0 amd64 [已安装]
|
||||
fcitx-bin/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
fcitx-config-common/jammy,jammy,now 0.4.10-3 all [已安装]
|
||||
fcitx-config-gtk/jammy,now 0.4.10-3 amd64 [已安装]
|
||||
fcitx-data/jammy,jammy,now 1:4.2.9.8-5 all [已安装]
|
||||
fcitx-frontend-all/jammy,jammy,now 1:4.2.9.8-5 all [已安装]
|
||||
fcitx-frontend-gtk2/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
fcitx-frontend-gtk3/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
fcitx-frontend-qt5/jammy,now 1.2.7-1.2build1 amd64 [已安装]
|
||||
fcitx-googlepinyin/jammy,now 0.1.6-5 amd64 [已安装]
|
||||
fcitx-libs/jammy,jammy,now 1:4.2.9.8-5 all [已安装,自动]
|
||||
fcitx-module-cloudpinyin/jammy,now 0.3.7-1 amd64 [已安装]
|
||||
fcitx-module-dbus/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
fcitx-module-kimpanel/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
fcitx-module-lua/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
fcitx-module-quickphrase-editor5/jammy,now 1.2.7-1.2build1 amd64 [已安装]
|
||||
fcitx-module-x11/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
fcitx-modules/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
fcitx-pinyin/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
fcitx-table/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
fcitx-ui-classic/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
libfcitx-config4/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
libfcitx-core0/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
libfcitx-gclient1/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
libfcitx-qt5-1/jammy,now 1.2.7-1.2build1 amd64 [已安装]
|
||||
libfcitx-qt5-data/jammy,jammy,now 1.2.7-1.2build1 all [已安装]
|
||||
libfcitx-utils0/jammy,now 1:4.2.9.8-5 amd64 [已安装]
|
||||
```
|
||||
|
||||
### **2.卸载上面所有的包**
|
||||
|
||||
```
|
||||
$ sudo apt remove fcitx-data fcitx-pinyin fcitx-baidupinyin fcitx-googlepinyin fcitx-bin fcitx-libs fcitx-config-common fcitx-frontend-* fcitx-modules libfcitx-*
|
||||
```
|
||||
|
||||
也可以分步删除:
|
||||
|
||||
```
|
||||
$ sudo apt remove fcitx-data # 会删除:fcitx fcitx-data fcitx-table sogouimebs
|
||||
$ sudo apt remove fcitx-pinyin fcitx-baidupinyin fcitx-googlepinyin
|
||||
$ sudo apt remove fcitx-bin
|
||||
$ sudo apt remove fcitx-libs
|
||||
$ sudo apt remove fcitx-config-common # 会删除:fcitx-config-common fcitx-config-gtk
|
||||
$ sudo apt remove fcitx-frontend-* # 会删除:fcitx-frontend-all fcitx-frontend-gtk2 fcitx-frontend-gtk3 fcitx-frontend-qt5
|
||||
$ sudo apt remove fcitx-modules # 会删除: fcitx-module-cloudpinyin fcitx-module-dbus fcitx-module-kimpanel fcitx-module-lua fcitx-module-x11 fcitx-modules fcitx-ui-classic
|
||||
$ sudo apt remove fcitx-module-quickphrase-editor5
|
||||
$ sudo apt remove libfcitx-* # 会删除: libfcitx-config4 libfcitx-core0 libfcitx-gclient1 libfcitx-qt5-1 libfcitx-qt5-data libfcitx-utils0
|
||||
```
|
||||
|
||||
## 二、安装 Fcitx5
|
||||
|
||||
Fcitx5 输入法框架的软件包主要包括:输入法主体 fcitx5,输入法引擎,支撑图形界面的组件,输入法模块,以及输入法配置工具等。
|
||||
|
||||
### **1.安装输入法主体**
|
||||
|
||||
```
|
||||
$ sudo apt install fcitx5
|
||||
```
|
||||
|
||||
下面是安装过程中的有关提示信息(发出来的目的是为了更好地理解 Fcitx5 的框架结构):
|
||||
|
||||
> 建议安装: fcitx5-chinese-addons fcitx5-frontend-gtk2 kde-config-fcitx5
|
||||
> 推荐安装: fcitx5-config-qt fcitx5-frontend-gtk3 fcitx5-frontend-gtk4 fcitx5-frontend-qt5 fcitx5-module-emoji fcitx5-module-quickphrase fcitx5-module-wayland fcitx5-module-xorg
|
||||
> 下列【新】软件包将被安装: fcitx5 fcitx5-data fcitx5-modules libfcitx5config6 libfcitx5core7 libfcitx5utils2 libxcb-ewmh2
|
||||
|
||||
### **2.安装中文输入法引擎**
|
||||
|
||||
`fcitx5-chinese-addons` 是 Fcitx5 的一个中文输入法引擎,它包含了大量中文输入方式:拼音、双拼、五笔拼音、自然码、仓颉、冰蟾全息、二笔等。
|
||||
|
||||
```
|
||||
$ sudo apt install fcitx5-chinese-addons
|
||||
```
|
||||
|
||||
下面是安装过程中的有关提示信息:
|
||||
|
||||
> 推荐安装: fcitx5-module-chttrans fcitx5-module-cloudpinyin fcitx5-module-fullwidth fcitx5-module-quickphrase
|
||||
> 下列【新】软件包将被安装: fcitx5-chinese-addons fcitx5-chinese-addons-bin fcitx5-chinese-addons-data fcitx5-module-pinyinhelper fcitx5-module-punctuation fcitx5-pinyin fcitx5-table libfcitx5-qt-data libfcitx5-qt1 libime-data libime-data-language-model libimecore0 libimepinyin0 libimetable0
|
||||
|
||||
### **3.安装输入法对图形界面的支持组件**
|
||||
|
||||
```
|
||||
$ sudo apt install fcitx5-frontend-*
|
||||
```
|
||||
|
||||
下面是安装过程中的有关提示信息:
|
||||
|
||||
> 建议安装: libgtk-4-media-gstreamer | libgtk-4-media-ffmpeg
|
||||
> 推荐安装: libgtk-4-bin
|
||||
> 下列【新】软件包将被安装: fcitx5-frontend-gtk2 fcitx5-frontend-gtk3 fcitx5-frontend-gtk4 fcitx5-frontend-qt5 libcairo-script-interpreter2 libfcitx5gclient2 libgtk-4-1 libgtk-4-common
|
||||
|
||||
### **4.安装配置工具**
|
||||
|
||||
```
|
||||
$ sudo apt install fcitx5-config-qt kde-config-fcitx5
|
||||
```
|
||||
|
||||
下面是安装过程中的有关提示信息:
|
||||
|
||||
> 推荐安装: libime-bin
|
||||
> 下列【新】软件包将被安装: fcitx5-config-qt kde-cli-tools kde-cli-tools-data kde-config-fcitx5 libkf5pty-data libkf5pty5 libkf5su-bin libkf5su-data libkf5su5 libkworkspace5-5 qml-module-org-kde-kcm
|
||||
|
||||
### **5.安装推荐的输入法模块**
|
||||
|
||||
```
|
||||
$ sudo apt install fcitx5-module-chttrans fcitx5-module-cloudpinyin fcitx5-module-fullwidth fcitx5-module-quickphrase fcitx5-module-emoji fcitx5-module-quickphrase fcitx5-module-wayland fcitx5-module-xorg
|
||||
```
|
||||
|
||||
下面是安装过程中的有关提示信息:
|
||||
|
||||
> 将会同时安装下列软件: libmarisa0 libopencc-data libopencc1.1 libxcb-imdkit1 unicode-cldr-core
|
||||
> 下列【新】软件包将被安装:fcitx5-module-chttrans fcitx5-module-cloudpinyin fcitx5-module-emoji fcitx5-module-fullwidth fcitx5-module-quickphrase fcitx5-module-wayland fcitx5-module-xorg libmarisa0 libopencc-data libopencc1.1 libxcb-imdkit1 unicode-cldr-core
|
||||
|
||||
如无意外,重启后会自动启动 Fcitx5 输入法了。
|
||||
|
||||
## 三、配置Fcitx5 输入法
|
||||
|
||||
### **1.安装主题**
|
||||
|
||||
安装并选择主题包,可以改善输入法托盘的外观,增加文字输入的舒适感。这里我下载和安装一下 fcitx5-nord 主题(主题包来源:Archlinux 关于 Fcitx5 的 wiki 文档中的主题介绍),安装命令如下:
|
||||
|
||||
```
|
||||
$ git clone https://github.com/tonyfettes/fcitx5-nord.git # 克隆 fcitx5-nord 主题包到本地
|
||||
$ cd fcitx5-nord/ # 切换到 fcitx5-nord 主题包目录
|
||||
$ ls # 查看目录内文件,发现有2个主题
|
||||
LICENSE Nord-Dark Nord-Light README.md
|
||||
$ cp -r Nord-Dark/ Nord-Light/ ~/.local/share/fcitx5/themes/ # 复制2个主题到 Fcitx5 的主题目录
|
||||
$ fcitx5-configtool # 配置主题及其他参数
|
||||
```
|
||||
|
||||
配置主题界面如下:
|
||||
|
||||
![主题选择](../assets/Fcitx5/Fcitx5主题选择.png)
|
||||
|
||||
### **2.安装词库**
|
||||
|
||||
安装离线词库后可以快速从词库中进行联想匹配,从而极大地提高输入速度及准确率。
|
||||
|
||||
Fcitx5的离线词库一般放在 `~/.local/share/fcitx5/pinyin/dictionaries` 目录,这些离线词库通常命名为 `*.dict`。安装方法也很简单,就是下载离线词库,将其复制到 `~/.local/share/fcitx5/pinyin/dictionaries` 即可(注意:如果找不到 dictionaries 目录则可以自己建立)。
|
||||
|
||||
**常用的离线词库:**
|
||||
- 萌娘百科词库 https://github.com/outloudvi/mw2fcitx
|
||||
- 维基百科词库 https://github.com/felixonmars/fcitx5-pinyin-zhwiki
|
||||
|
||||
从上面2个仓库的 Releases 找到并下载词库,然后复制到词库目录,再查看词库目录应该是类似这样的:
|
||||
|
||||
```
|
||||
$ ls ~/.local/share/fcitx5/pinyin/dictionaries
|
||||
moegirl.dict zhwiki-20220529.dict
|
||||
```
|
||||
|
||||
重启或重启输入法生效,这时就能体验快速输入某些生僻词汇了。
|
|
@ -1,91 +0,0 @@
|
|||
# <center>在双系统(Windows 8 、Ubuntu Kylin)中如何从Windows 8卸载Ubuntu Kylin</center>
|
||||
#### <center>作者:优麒麟</center>
|
||||
#### <center>2022-04-22 23:36:00</center>
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q1.jpg)
|
||||
|
||||
曾几次介绍如何在Windows 8存在的情况下安装Ubuntu Kylin。但是,我们如何从Windows 8中卸载Ubuntu Kylin呢?这篇教程适用于任何Linux操作系统,如Ubuntu Kylin、Linux Mint、Elementary或任何其他Linux的发行版。
|
||||
|
||||
如果您认为卸载Ubuntu Kylin是一个艰巨的任务,那完全是错误的,因为从Windows中删除Ubuntu Kylin是很容易的。如果你有一个Windows安装盘,从Windows中卸载Linux简直就是小菜一碟。
|
||||
|
||||
本教程教你当启动了Windows 8/8.1安装盘时如何从Windows 8或Windows 8.1中彻底删除Linux。
|
||||
|
||||
从双系统中安全卸载Ubuntu Kylin
|
||||
|
||||
如果您有Windows 8安装盘并且已经安装了Windows 8.1操作系统,它的运行过程都是一样的,虽不与Windows 7相同。如果有Windows安装盘,就来一起学习下面这个在Windows中删除Ubuntu Kylin Linux操作系统的过程。
|
||||
|
||||
从双系统中删除Linux分两部分进行。首先是删除已安装Linux的分区(S)。由于只删除Linux分区会导致Grub错误,所以第二部分是修复Windows启动加载器。
|
||||
|
||||
第一部分:在Windows中删除Linux分区
|
||||
|
||||
第1步:登录Windows。按Windows+ R,运行diskmgmt.msc命令打开Windows的磁盘管理工具。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q2.jpg)
|
||||
|
||||
第2步:既然已经安装了Linux,就很容易让您通过它的容量大小识别Linux分区。另一个提示可以通过看分区是否无文件系统和驱动器号来识别Linux分区。 Windows分区都标有一个驱动器号,如通常在NTFS或FAT文件系统C,D,E等。
|
||||
|
||||
正如您所看到的,这有三个Linux分区。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q3.jpg)
|
||||
|
||||
第3步:选择Linux分区(S),右击选择“删除卷”选项。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q4.jpg)
|
||||
|
||||
它会弹出一个警告,在这里选择“是”。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q5.jpg)
|
||||
|
||||
第4步:被删除的分区将作为一大块空闲空间。您可以扩展现有分区或创建一个新的Windows分区出来。如果想双启动Linux与Windows,建议创建一个新的驱动器(或卷或分区,随便您怎么称呼它)。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q6.jpg)
|
||||
|
||||
第二部分:修复Windows启动加载器
|
||||
|
||||
一旦删除Linux分区,就需要花时间来修复Windows启动加载器。这里的图片可能有点不清晰,因为Ubuntu Kylin登录界面的截屏比Windows简单。
|
||||
|
||||
第1步:放入Windows 8安装盘,重启计算机。在开机时按F10或F12键,进入BIOS/ UEFI,从硬盘启动。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q7.jpg)
|
||||
|
||||
第2步:选择“修复计算机”。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q8.jpg)
|
||||
|
||||
第3步:进入“故障处理”选项。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q9.jpg)
|
||||
|
||||
第4步:在“故障处理”页面中,选择“高级选项”。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q10.jpg)
|
||||
|
||||
第5步:找到”命令提示符”。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q11.jpg)
|
||||
|
||||
第6步:在命令行中输入以下命令来修复Windows启动加载器。
|
||||
|
||||
bootrec.exe /fixmbr
|
||||
|
||||
通常情况下,它运行的时间很短。您甚至不必等它。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q11.jpg)
|
||||
|
||||
第7步:一旦完成,重启计算机,这时候从硬盘正常启动,进入Windows。如果您仍看到Grub错误,请尝试以下步骤。
|
||||
|
||||
第8步:如果第6步失效,尝试在”高级故障排除”选项中的”自动修复”选项。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q13.jpg)
|
||||
|
||||
这将需要一点时间来找问题,然后修复它。
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/images/q14.jpg)
|
||||
|
||||
现在,如果您重启,应该在Windows中正常,就不会看到任何的grub救援错误。
|
||||
|
||||
希望这篇技巧文章能帮您从Windows8双系统启动中完全删除Ubuntu Kylin Linux系统。欢迎给UK团队提出任何问题或建议。
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
# <center>如何在grub添加启动参数</center>
|
||||
#### <center>作者:优麒麟</center>
|
||||
#### <center>作者:小K</center>
|
||||
#### <center>2022-04-22 23:36:00</center>
|
||||
|
||||
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
# <center>如何扩展根分区</center>
|
||||
#### <center>作者:优麒麟</center>
|
||||
#### <center>2022-04-22 23:36:00</center>
|
||||
## 说明
|
||||
修改根分区其实不难,只是时间可能比较长,最主要的修改有两个,/etc/fstab和引导,引导可以用 sudo update-grub 来更新,fstab则需要自己根据情况来修复,截图我会用16.04修改17.04的根分区,修改16.04的根分区时间太长,需要用麒麟的启动盘,版本无所谓,启动电脑,这里是把16.04当做启动盘启动之后的系统来用,需要说明的一点是,有的设备文件是不同的比如,这里是单硬盘双系统,你的可能是双硬盘双系统,不要全按照文中设备文件来写,文章尽量的描述应该找的分区特征,大家根据实际情况修改,文章会尽量啰嗦的写清楚,宁可多说不能漏说,在这里漏了你的电脑可能就开不了机,所以最好把这个读完再操作.
|
||||
|
||||
1. 首先查看自己的根分区在哪个分区上,打开gparted就可以看到了,这是我在17.04下截的图 [图1] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114832fjg2dqvxgedddg8d.png),可以看到根分区所在的地方时/dev/sda7,那么sda7就是我们要扩大的分区,记住分区号码就可以了,因为sda可能会更改。 然后双系统的换到另一个Linux,或者用麒麟启动盘启动电脑,然后打开gparted,如果发现打开的磁盘没有自己要修改的分区,可以点击右上角切换磁盘,但是切换磁盘找到自己的分区号以后下边所有的分区操作都是以你新找到的分区进行操作的,你只要把sda7替换成你自己的分区就可以。[图2] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114832r3yqn8cq2cwq7ccv.png)
|
||||
|
||||
2. 如图,17.04装在了/dev/sda7,所以我可以切sda12或者sda8,我选择把/dev/sda12的分区切出来5G,这里是实验,大家可以根据自己的需要修改,切前边还是切后边,都可以。这是无损的,切记要修改的分区不能挂载。
|
||||
注意:所有要修改的分区都不能挂载,已经挂载的可以在分区上右键选择卸载,不修改分区的是无所谓的,已挂载的分区前会出现一个钥匙,就像我的/dev/sda1那个一样。
|
||||
首先从/dev/sda7前边或者后边的分区切出来一部分,我切的是前边的sda12。[图3] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114832sv6vdz4c3ndnkgrt.png)
|
||||
[图4] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114832q0oubktydhmtthdd.png) [图5] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114832wx6xv6xc6zvf5w5e.png)。
|
||||
3. 因为我要在分区之后切出来5GB的空间,所以在之后的空余空间输入5120,如果希望在分区前边切出来空余的空间就只修改之前的空余空间,但是不推荐修改之前的空余空间,分区数据少的话还好,数据多的话最后修改大小的时候会很耗时间,输入完毕后回车之后点击调整按钮,会变成下边这样。[图6] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114832gf96nc1ktqzne79t.png)。
|
||||
4. gparted不会直接操作,他会等你点击应用后把你的操作按照顺序执行,这是如果执行修改的分区分布,下边则是执行的步骤顺序,然后同样的方式,把sda7扩大,这是选择调整sda7之后显示的窗口。[图7] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833wjjofhhujzf22hya.png).
|
||||
5. 我们可以拖动前边的箭头拖动到最前边,之后点击修改,然后会弹出一个窗口,提示可能无法启动,这个没事,但是Windows我好像没试过,点击确定之后是这样的 [图8] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833avyh9wffjd9wwify.png)。
|
||||
6. 然后点击上边的应用,就会按照你的步骤顺序来执行操作,有的操作是比较浪费时间的,所以有时候是需要等待的,在应用前边的是撤销,做错了可以用这个撤销掉,所以最好在应用前检查下 [图9] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833i5njn1nnn2kqk9ya.png)。
|
||||
7. 点击应用后会出现个应用操作到设备,点击应用即可,然后会出现具体的操作步骤 [图10] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833x15pvso2ja92c9cf.png).
|
||||
8. 在分区后边缩小分区比较快,如果在分区前边缩小,会移动整个分区的数据,速度的话,你自己想想,扩大分区倒是不用太长时间,这是我扩大之后的分区 [图11] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833wajhlg5d53uml3o3.png)。
|
||||
9. 然后打开文件管理,进入sda7所在的挂载目录,右键在此打开终端(表述可能不同,意思就是在这个地方打开一个终端),这是我的终端 [图12] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833o5cco0xtlcb5ztlc.png)。
|
||||
10. 终端默认都会显示当前的所在路径比如现在我的终端是在/media/root/17.04打开的,这个路径如果是用绝对路径挂载的话需要用到,具体的路径可以在自己的终端上查看,这里是相对路径是用不到的然后执行三条类似于新建挂载点的命令。
|
||||
sudo mount --rbind /dev dev
|
||||
sudo mount --rbind /proc proc
|
||||
sudo mount --rbind /sys sys
|
||||
注意:这是boot没有单独分区的情况,如果单独分区了还需要再挂载boot分区到boot目录
|
||||
假设boot分区在/dev/sda3
|
||||
sudo mount /dev/sda3 boot
|
||||
如果是efi还需要再挂载efi分区,假设efi分区在/dev/sda2
|
||||
sudo mount /dev/sda2 boot/efi
|
||||
然后执行
|
||||
sudo chroot .
|
||||
注意:最后是有一个英文状态下的点的。
|
||||
此时你的用户会变成root,目录会变成根目录也就是/ [图13] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833wmpko7a72mpqyohm.png)
|
||||
11. 然后在这个终端执行 update-grub [图14] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833i6ufr1bs6pussrs3.png)
|
||||
12. 这样引导就修复完成了
|
||||
注意:此处针对的是单系统的引导,多Linux系统的引导最好再用主引导来修复,第三方引导就只能自己修复了,之后还有最最重要的一步修改fstab,不修改fstab的话,虽然能启动内核但是是不能挂载根分区的,也就不能顺利启动系统。
|
||||
进入17.04所在分区的etc目录,然后打开终端,用管理员权限编辑fstab,注意:不是你现在使用的系统,是之前调整的分区那里的目录
|
||||
输入 sudo gedit fstab
|
||||
我们主要修改的是圈住的部分,那里是根分区的UUID,因为我们修改了分区,所以这里可能会被改变,我们需要手动修改下,如果对比没有变化的话,就可以不用修改 [图15] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833p99llub5l542br2b.png)。
|
||||
13. 打开gparted
|
||||
在17.04所在的分区右键,选择最底下的“信息”,弹出来这个,我们只要复制圈住的部分,就是UUID那里就可以了,快捷键Ctrl+C,如果右键没有复制的话。 [图16](https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833brgaojpzaj8xgjko.png)。 这里分区的UUID没有被改变,我们可以不修改,如果发现gparted的UUID和fstab里边的不同,那么就把gparted里边的UUID替换到fstab里保存一下,然后就可以开机了。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
本文撰写过程中参考了以下文章:
|
||||
[https://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=191476](https://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=191476)
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
# <center>我就是我,原理不一样的snap</center>
|
||||
#### <center>作者:优麒麟</center>
|
||||
#### <center>作者:小K</center>
|
||||
#### <center>2022-04-22 23:36:00</center>
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# <center>无线网卡支持</center>
|
||||
#### <center>作者:优麒麟</center>
|
||||
#### <center>作者:小K</center>
|
||||
#### <center>2022-04-22 23:36:00</center>
|
||||
|
||||
|
||||
|
|
|
@ -1,213 +0,0 @@
|
|||
# <center>震惊!没想到你是这样的flatpak...</center>
|
||||
#### <center>作者:优麒麟</center>
|
||||
#### <center>2022-04-22 23:36:00</center>
|
||||
|
||||
![](https://www.ubuntukylin.com/upload/201707/1500013249421469.jpg)
|
||||
|
||||
**引言**
|
||||
|
||||
之前我们介绍过如何在优麒麟和银河麒麟社区版上构建snap/flatpak包(传送门),今天我们来更深入的认识下flatpak:
|
||||
|
||||
|
||||
|
||||
**Flatpak**(前世为xdg-app) 是一种用于构建,分发,安装和运行应用程序的技术。它主要针对的是Linux桌面,通过在沙箱中隔离应用程序来提高Linux桌面的安全性,允许应用程序安装在任何Linux发行版上。
|
||||
|
||||
|
||||
|
||||
### 历史:
|
||||
|
||||
2013: 在[GNOME Developer Experience hackfest, Brussels](https://wiki.gnome.org/DeveloperExperience/Hackfest2013)大会后,萌生在GNOME中使用应用程序容器技术的念头,次年开始开发。
|
||||
|
||||
2016年5月: 第一个主版本xdg-app发布。
|
||||
|
||||
6月:重命名为flatpak。
|
||||
|
||||
8月:endless OS 3.0, 第一个默认支持Flatpak的发行版。
|
||||
|
||||
11月:ClearLinux声明采用flatpak。
|
||||
|
||||
2017年2月: 最新的flatpak已经可以在Arch, Debian, Fedora, Gentoo, Mageia, openSUSE, Ubuntu等的最新版本上运行。
|
||||
|
||||
|
||||
|
||||
### 基本概念:
|
||||
|
||||
#### 运行时(runtimes)
|
||||
|
||||
“运行时”提供应用程序所需的基本依赖。有各种各样的“运行时”,比如“Freedesktop运行时”,“GNOME运行时”。“Freedesktop运行时”包含一系列必要的库和服务,包括D-Bus, GLib, PulseAudio, X11和Wayland等。“GNOME运行时”基于“FreeDesktop运行时”,增加了一些GNOME平台相关的库,比如GStreamer, GTK+, GVFS等。必须针对运行时构建每个应用程序,并且必须在主机系统上安装此运行时才能运行应用程序。用户可以同时安装多个不同的运行时,包括不同版本的同一个运行时。KDE runtime正在开发中。
|
||||
|
||||
每一个运行时可以看做一个’/usr’ 文件系统,当程序运行时,它的运行时挂载在‘/usr’上。
|
||||
|
||||
|
||||
|
||||
#### 捆绑库(Bundled libraries)
|
||||
|
||||
当一个程序需要的依赖不在运行时中,使用捆绑库来绑定这些依赖到程序上。
|
||||
|
||||
|
||||
|
||||
#### SDK(软件开发套件)
|
||||
|
||||
SDK也是一个“运行时”,是用于构建应用程序的特殊类型的运行时,它包含了构建和打包工具(‘devel’ parts),如头文件,编译器和调试器。通常,SDK与“运行时”配对,由应用程序使用。
|
||||
|
||||
|
||||
|
||||
#### 扩展(Extensions)
|
||||
|
||||
一个扩展是对于运行时或程序的可选插件,一般用于把translations和debug信息从运行时分离出来,比如, org.freedesktop.Platform.Locale 可以追加到org.freedesktop.Platform运行时上用来添加翻译。
|
||||
|
||||
|
||||
|
||||
#### 沙箱(Sandbox)
|
||||
|
||||
使用Flatpak,每个应用程序都是在孤立的环境中构建和运行的。默认情况下,应用程序只能“查看”自身及其“运行时”,访问用户文件,网络,graphics sockets,总线和设备上的子系统必须明确授予权限,访问其他内容(如其他进程)是不允许的。(可以通过Portals机制在沙箱内访问外面系统,比如打印,截图等)
|
||||
|
||||
|
||||
|
||||
### 原理:
|
||||
|
||||
Flatpak主要使用了如下技术:
|
||||
|
||||
1. [bubblewrap](https://github.com/projectatomic/bubblewrap):依赖它作为沙箱的底层实现, 限制了应用程序访问操作系统或用户数据的能力,并且提供了非特权用户使用容器的能力。
|
||||
|
||||
2. Systemd:将各个subsystem和cgroup树关联并挂载好,为沙箱创建 cgroups。
|
||||
|
||||
3. D-Bus, 为应用程序提供高层APIs。
|
||||
|
||||
4. 使用Open Container Initiative的OCI格式作为单文件的传输格式,方便传输。
|
||||
|
||||
5. 使用OSTree系统用于版本化和分发文件系统树。
|
||||
|
||||
6. 使用Appstream 元数据,使得Flatpak应用程序在软件中心可以完美呈现出来。
|
||||
|
||||
而其中最重要的当属bubblewrap,它是整个应用沙箱构建的关键,主要利用了如下内核特性:
|
||||
|
||||
#### Namespaces:
|
||||
|
||||
命名空间是对全局系统资源的一个封装隔离,使得处于不同namespace的进程拥有独立的全局系统资源,改变一个namespace中的系统资源只会影响当前namespace里的进程,对其他namespace中的进程没有影响。它控制了进程的可见范围,例如网络、挂载点、进程等等。同时使得非特权用户可以创建沙箱。它有以下几类:
|
||||
|
||||
● Mount namespace (CLONE_NEWNS):
|
||||
|
||||
用来隔离文件系统的挂载点, 使得不同的mount namespace拥有自己独立的挂载点信息,不同的namespace之间不会相互影响,这对于构建用户或者容器自己的文件系统目录非常有用。bubblewrap 总是创建一个新的mount namespace, root挂载在tmpfs上,用户可以明确指定文件系统的哪个部分在沙盒中是可见的。
|
||||
|
||||
● User namespaces (CLONE_NEWUSER):
|
||||
|
||||
用来隔离用户权限相关的Linux资源,包括用户ID 和组ID, 在不同的user namespace中,同样一个用户的user ID 和group ID可以不一样,换句话说,一个用户可以在父user namespace中是普通用户,在子user namespace中是超级用户(超级用户只相对于子user namespace所拥有的资源,无法访问其他user namespace中需要超级用户才能访问资源)。
|
||||
|
||||
● IPC namespaces (CLONE_NEWIPC):
|
||||
|
||||
沙箱会得到所有不同形式的IPCs的一份拷贝,比如SysV 共享内存和信号量等。
|
||||
|
||||
● PID namespaces (CLONE_NEWPID):
|
||||
|
||||
用来隔离进程的ID空间,沙箱内的程序看不见任何沙箱外的进程,此外, bubblewrap 会运行一个pid为1的程序在容器中,用来处理回收子进程的需求。
|
||||
|
||||
● Network namespaces (CLONE_NEWNET):
|
||||
|
||||
用来隔绝网络,在它自己的network namespace中只有一个回环设备。
|
||||
|
||||
● UTS namespace (CLONE_NEWUTS):
|
||||
|
||||
允许沙箱拥有自己独立的hostname和domain name.
|
||||
|
||||
#### Cgroups:
|
||||
|
||||
cgroup和namespace类似,也是将进程进行分组,但它的目的和namespace不一样,namespace是为了隔离进程组之间的资源,而cgroup是为了对一组进程进行统一的资源监控和限制。
|
||||
|
||||
#### Bind Mount:
|
||||
|
||||
将一个目录(或文件)中的内容挂载到另一个目录(或文件)上.
|
||||
|
||||
#### Seccomp rules:
|
||||
|
||||
Linux kernel 所支持的一种简洁的sandboxing机制。它能使一个进程进入到一种“安全”运行模式,该模式下的进程只能调用4种系统调用(system calls),即read(), write(), exit()和sigreturn(),否则进程便会被终止。
|
||||
|
||||
同时,bubblewrap 使用PR_SET_NO_NEW_PRIVS 关闭 setuid 二进制程序。
|
||||
|
||||
当一个进程或其子进程设置了PR_SET_NO_NEW_PRIVS 属性,则其不能访问一些无法share的操作,如setuid, 和chroot。
|
||||
|
||||
|
||||
|
||||
### 实验:
|
||||
|
||||
接下来,我们通过如下方式进入到一个flatpak创建的沙箱中:
|
||||
|
||||
安装程序所需的“运行时”和Sdk:
|
||||
|
||||
$ flatpak remote-add --from gnome https://sdk.gnome.org/gnome.flatpakrepo
|
||||
|
||||
$ flatpak install gnome org.gnome.Platform//3.24 org.gnome.Sdk//3.24
|
||||
|
||||
安装gedit:
|
||||
|
||||
$ flatpak remote-add --from gnome-apps https://sdk.gnome.org/gnome-apps.flatpakrepo
|
||||
|
||||
$ flatpak install gnome-apps org.gnome.gedit
|
||||
|
||||
创建一个‘devel sandbox’中的shell:
|
||||
|
||||
$ flatpak run --devel --command=bash org.gnome.gedit
|
||||
|
||||
可以看到此沙箱中有3个进程,且flatpak-bwrap pid为1。
|
||||
|
||||
$ ps
|
||||
|
||||
PID TTY TIME CMD
|
||||
|
||||
1 ? 00:00:00 flatpak-bwrap
|
||||
|
||||
2 ? 00:00:00 bash
|
||||
|
||||
5 ? 00:00:00 ps
|
||||
|
||||
查看当前进程所属的namespace,括号里的数字标识不同的namespace:
|
||||
|
||||
$ ls -l /proc/&&/ns
|
||||
|
||||
total 0
|
||||
|
||||
15:48 cgroup -> cgroup:【4026531835】
|
||||
|
||||
15:48 ipc -> ipc:【4026531839】
|
||||
|
||||
15:48 mnt -> mnt:【4026532241】
|
||||
|
||||
15:48 net -> net:【4026532244】
|
||||
|
||||
15:48 pid -> pid:【4026532242】
|
||||
|
||||
15:48 user -> user:【4026532371】
|
||||
|
||||
15:48 uts -> uts:【4026531838】
|
||||
|
||||
然后在主机中打开另一个终端,查看主机中当前进程的namespace:
|
||||
|
||||
$ ls /proc/&&/ns
|
||||
|
||||
total 0
|
||||
|
||||
15:56 cgroup -> cgroup:【4026531835】
|
||||
|
||||
15:56 ipc -> ipc:【4026531839】
|
||||
|
||||
15:56 mnt -> mnt:【4026531840】
|
||||
|
||||
15:56 net -> net:【4026531957】
|
||||
|
||||
15:56 pid -> pid:【4026531836】
|
||||
|
||||
15:56 user -> user:【4026531837】
|
||||
|
||||
15:56 uts -> uts:【4026531838】
|
||||
|
||||
可以看到沙箱中的进程所属的namespace与主机环境下进程的namespace相比,它们的mount ,net, pid, user namespace不同,这时我们在主机环境下把ping文件拷贝进主目录(gedit声明了对’/home’的访问权限),然后在sandbox shell中执行ping 192.168.0.1,会发现报错:
|
||||
|
||||
$ ./ping 192.168.0.1
|
||||
|
||||
ping: socket: Operation not permitted
|
||||
|
||||
因为gedit没有申请网络权限,它和主机在不同的network namespaces中。
|
||||
|
||||
|
||||
|
||||
怎么样,是不是很有趣,你还能在这个沙箱中做更多有趣的探索,行动起来,一起来flatpak吧!
|
|
@ -0,0 +1 @@
|
|||
### openKylin安装指南
|
Loading…
Reference in New Issue