Ubuntu系统

展开

当前位置:首页>服务器系统>Ubuntu系统

利用Resetter将Ubuntu系发行版重置为初始状态

作者:系统库人气:
这个 Resetter 工具可以将 Ubuntu、 Linux Mint (以及其它基于 Ubuntu 的发行版)返回到其初始配置。
有多少次你投身于 Ubuntu(或 Ubuntu 衍生版本),配置某项内容和安装软件,却发现你的桌面(或服务器)平台并不是你想要的结果。当在机器上产生了大量的用户文件时,这种情况可能会出现问题。既然这样,你有一个选择,你要么可以备份你所有的数据,重新安装操作系统,然后将您的数据复制回本机,或者也可以利用一种类似于 Resetter(https://github.com/gaining/Resetter) 的工具做同样的事情。
Resetter 是一个新的工具(由名为“gaining”的加拿大开发者开发),用 Python 和 PyQt 编写,它将会重置 Ubuntu、Linux Mint(和一些其他的,基于 Ubuntu 的衍生版)回到初始配置。Resetter 提供了两种不同的复位选择:自动和自定义。利用自动方式,工具就会完成以下内容:
删除用户安装的应用软件
删除用户及家目录
创建默认备份用户
自动安装缺失的预装应用软件(MPIA)
删除非默认用户
删除 snap 软件包
自定义方式会:
删除用户安装的应用程序或者允许你选择要删除的应用程序
删除旧的内核
允许你选择用户进行删除
删除用户及家目录
创建默认备份用户
允许您创建自定义备份用户
自动安装缺失的预装应用软件(MPIA)或选择 MPIA 进行安装
删除非默认用户
查看所有相关依赖包
删除 snap 软件包
我将带领您完成安装和使用 Resetter 的过程。但是,我必须告诉你这个工具非常前期的测试版。即便如此, Resetter 绝对值得一试。实际上,我鼓励您测试该应用程序并提交 bug 报告(您可以通过 GitHub 提交,或者直接发送给开发人员的电子邮件地址 gaining7@outlook.com)。
还应注意的是,目前仅支持的衍生版有:
Debian 9.2 (稳定)Gnome 版本
Linux Mint 17.3+(对 Mint 18.3 的支持即将推出)
Ubuntu 14.04+ (虽然我发现不支持 17.10)
Elementary OS 0.4+
Linux Deepin 15.4+
说到这里,让我们安装和使用 Resetter。我将在 Elementary OS Loki 平台展示(https://elementary.io/)。
 
安装
有几种方法可以安装 Resetter。我选择的方法是通过 gdebi 辅助应用程序,为什么?因为它将获取安装所需的所有依赖项。首先,我们必须安装这个特定的工具。打开终端窗口并发出命令:
sudo apt install gdebi
一旦安装完毕,请将浏览器指向 Resetter 下载页面(https://github.com/gaining/Resetter/releases/tag/v1.1.3-stable),并下载该软件的最新版本。一旦下载完毕,打开文件管理器,导航到下载的文件,然后单击(或双击,这取决于你如何配置你的桌面) resetter_XXX-stable_all.deb 文件(XXX 是版本号)。gdebi 应用程序将会打开(图 1)。点击安装包按钮,输入你的 sudo 密码,接下来 Resetter 将开始安装。
利用Resetter将Ubuntu系发行版重置为初始状态
当安装完成,准备接下来的操作。
 
使用 Resetter
记住,在这之前,必须备份数据。别怪我没提醒你。
从终端窗口发出命令 sudo resetter。您将被提示输入 sudo密码。一旦 Resetter 打开,它将自动检测您的发行版(图 2)。
利用Resetter将Ubuntu系发行版重置为初始状态
我们将通过自动重置来测试 Resetter 的流程。从主窗口,点击 Automatic Reset(自动复位)。这款应用将提供一个明确的警告,它将把你的操作系统(我的实例,Elementary OS 0.4.1 Loki)重新设置为出厂默认状态(图 3)。
利用Resetter将Ubuntu系发行版重置为初始状态
单击“Yes”,Resetter 会显示它将删除的所有包(图 4)。如果您没有问题,单击 OK,重置将开始。
利用Resetter将Ubuntu系发行版重置为初始状态
在重置过程中,应用程序将显示一个进度窗口(图 5)。根据安装的数量,这个过程不应该花费太长时间。
利用Resetter将Ubuntu系发行版重置为初始状态
当过程完成时,Resetter 将显示一个新的用户名和密码,以便重新登录到新重置的发行版(图 6)。
利用Resetter将Ubuntu系发行版重置为初始状态
单击 OK,然后当提示时单击“Yes”以重新启动系统。当提示登录时,使用 Resetter 应用程序提供给您的新凭证。成功登录后,您需要重新创建您的原始用户。该用户的主目录仍然是完整的,所以您需要做的就是发出命令 sudo useradd USERNAME ( USERNAME 是用户名)。完成之后,发出命令 sudo passwd USERNAME (USERNAME 是用户名)。使用设置的用户/密码,您可以注销并以旧用户的身份登录(使用在重新设置操作系统之前相同的家目录)。
 
我的成果
我必须承认,在将密码添加到我的老用户(并通过使用 su 命令切换到该用户进行测试)之后,我无法使用该用户登录到 Elementary OS 桌面。为了解决这个问题,我登录了 Resetter 所创建的用户,移动了老用户的家目录,删除了老用户(使用命令 sudo deluser jack),并重新创建了老用户(使用命令 sudo useradd -m jack)。
这样做之后,我检查了原始的家目录,只发现了用户的所有权从 jack.jack 变成了 1000.1000。利用命令 sudo chown -R jack.jack /home/jack,就可以容易的修正这个问题。教训是什么?如果您使用 Resetter 并发现无法用您的老用户登录(在您重新创建用户并设置一个新密码之后),请确保更改用户的家目录的所有权限。
在这个问题之外,Resetter 在将 Elementary OS Loki 恢复到默认状态方面做了大量的工作。虽然 Resetter 处在测试中,但它是一个相当令人印象深刻的工具。试一试,看看你是否有和我一样出色的成绩。
 

Ubuntu16.04交叉编译树莓派Linux-Kernel并打RT-Patch

Step-1:准备数据
下载要在树莓派上部署的Linux内核代码,下载网站:
https://github.com/raspberrypi/linux/tree/rpi-4.9.y/kernel
下载要使用的patch,需要注意与Linux内核代码的版本一致:
https://www.kernel.org/pub/linux/kernel/projects/rt/
 
Step-2:打patch
将上述代码的压缩包分别解压,将patch文件夹复制到Linux源码根目录,并在Linux源码根目录下执行下列命令进行打patch:
cat *.patch | patch p1
 
Step-3:交叉编译Linux源码
在Ubuntu16.04下交叉编译树莓派源码,需要先安装工具:
git clone https://github.com/raspberrypi/tools ~/tools
接着配置PATH变量,注意32bit和64bit系统存在差异:
32位系统:
echo PATH=\$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin >>~/.bashrc
source ~/.bashrc
64位系统:
echo PATH=\$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin >>~/.bashrc
source ~/.bashrc
如果使用64位Ubuntu系统,则需要安装32位编译库支持:
sudo apt-get install libc6:i386
sudo apt-get install lib32stdc++6
sudo apt-get install lib32z1
进入LInux源码根目录,配置交叉编译设置:
(对于树莓派3代)
KERNEL=kernel7
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
然后就可以进行编译了:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
如果电脑CPU拥有n个线程,为了使编译更加快速,可以使用 -jn 来设置执行交叉编译的线程数:
#-j4 表示使用4个线程,可以根据具体CPU配置进行设置
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs -j4
注意:如果在编译时提示 warning: Clock skew detected. Your build may be imcomplete. ,需要将系统时间往后调1天,再尝试进行编译。
 
Step-4:部署到SD卡
完成编译之后,可以将编译好的Linux内核部署到SD卡上。
首先使用读卡器将SD卡连接到电脑,使用 lsblk 命令找到SD卡,得到类似下列结果:
sdb
sdb1    #FAT格式(boot)
sdb2    #EXT4格式(root)
然后将Linux代码部署到SD卡上:
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH= modules_install
然后将old kernels进行备份:
#取决与Ubuntu系统是32/64位,详见Step-3
sudo cp /.img  /-backup.img
sudo cp arch/arm/boot/zImage /.img
sudo cp arch/arm/boot/dts/*.dtb
sudo cp arch/arm/boot/dts/overlays/README
 
Final Step
插卡,重启树莓派即可。

Ubuntu下安装和配置golang(包括升级)

一.安装
这里以安装golang1.9为例: 
1.首先通过命令行直接安装
sudo apt-get install golang-1.9
2.下载好之后,查看go的版本
catik@catik-Aspire-V3-471:~$ go version 
go version go1.9.2 linux/amd64
可以看得出,这里的版本是go1.9.2。
 
二.环境配置
1.查看环境变量:
catik@catik-Aspire-V3-471:~$ go env 
GOARCH=”amd64” 
GOBIN=”” 
GOEXE=”” 
GOHOSTARCH=”amd64” 
GOHOSTOS=”linux” 
GOOS=”linux” 
GOPATH=”/home/catik/godownload/” 
GORACE=”” 
GOROOT=”/usr/lib/go” 
GOTOOLDIR=”/usr/lib/go/pkg/tool/linux_amd64” 
GCCGO=”gccgo” 
CC=”gcc” 
GOGCCFLAGS=”-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build504408127=/tmp/go-build -gno-record-gcc-switches” 
CXX=”g++” 
CGO_ENABLED=”1” 
CGO_CFLAGS=”-g -O2” 
CGO_CPPFLAGS=”” 
CGO_CXXFLAGS=”-g -O2” 
CGO_FFLAGS=”-g -O2” 
CGO_LDFLAGS=”-g -O2” 
PKG_CONFIG=”pkg-config
这里几个比较关键的变量 GOPATH 和GOROOT 
GOPATH是go get指令默认下载和安装包的位置,通过go get指令,获取go的包,默认下载到GOPATH所指示的目录中. 
GOROOT是go安装的位置,也是go可执行文件的位置,也就是说,当我们命令行中打出go的指令时,系统能不能准确调用go的可执行文件 
这里GOROOT=”/usr/lib/go” 
通过以下命令 
cd /usr/lib/go 
ls 
就可以看到
catik@catik-Aspire-V3-471:/usr/lib/go$ ls 
bin doc favicon.ico.gz go pkg src test VERSION
bin中存的就是go的可执行文件了,我们可以试一下:
catik@catik-Aspire-V3-471:/usr/lib/go/bin$ ./go version 
go version go1.9.2 linux/amd64
这与我们在命令行中直接输入go是一样的 
2.配置环境变量 
默认的时候,GOPATH是没有配置好的,那么我们怎么修改这些环境变量呢 
首先,我们可以按照自己的意愿,在一个位置建一个文件夹,比如
mkdir /home/catik/GoDownload
然后,配置环境变量有三个方法:
1]:最根本的方法就是修改/etc/profile文件
sudo gedit /etc/profile 
注意这里必须要sudo,因为系统目录下的文档不允许任意修改的 
在最后添加export GOPATH=/home/catik/GoDownload 
这个办法修改是对所有的用户都生效的,修改之后要重启就会另修改生效
2]:这个办法也可以,修改用户目录下的.profile文件
比如这里是/home/catik/.profile 
通过gedit /home/catik/.profile打开之后就能修改了 
修改的方法跟第一种是一样的,就是再最后添加 
export GOPATH=/home/catik/GoDownload
3]:临时性的起作用,只有本次生效,当你关闭terminal之后,不再生效
直接在命令行中 
catik@catik-Aspire-V3-471:~$ export GOPATH=/home/catik/GoDownload
 
升级系统的golang
如果你的电脑中已经安装了golang,但是,并不是最新版的,那么把你的电脑中的golang升级到最新的版本呢 
比如原来安装的是go1.6,最新的版本为go1.9
首先卸载电脑中的老版本
sudo apt-get remove golang-1.6
然后安装最新版的
sudo apt-get install golang-1.9
等待安装好之后,发现
go version
version 还是1.6,竟然不管用?重启电脑,还是这样,那么问题出在哪里了呢 
我们循着GOROOT的地方去看看
catik@catik-Aspire-V3-471: cd /usr/lib/go 
catik@catik-Aspire-V3-471: ls 
bin doc favicon.ico.gz go pkg src test VERSION 
catik@catik-Aspire-V3-471: cat VERSION 
go1.6
这样我们就看出来了原来这里的go还是原来的可执行文件,原来卸载之后并没有把这里的文件卸载干净,这里的可执行文件也没有变。 
所以我们把1.9版本的go的文件复制到这里来,顺便说一句,原来的这个go文件夹是一个硬链接,连接的目标是原来的go-1.6文件夹,当我们安装好go-1.9之后,这两个文件夹同时存在,这里我们需要把go-1.6删除
sudo rm go-1.6 -r
把原来的链接文件也删除
sudo rm go -r
建一个新的go文件夹
sudo mkdir go
把go-1.9中的全部文件复制过去
sudo cp ./go-1.9/* ./go
再次查看go的版本
go version 
go-1.9.2
问题顺利解决。

CPU漏洞修复补丁导致Ubuntu 16.04机器无法启动,附修复方案在ubuntu16.04系统下获取glibc的版本号优麒麟Ubuntu Kylin用户修复漏洞只需运行update-manager即可在Ubuntu上安装并使用YouTube-DL宿主机与Virtual虚拟机之间共享文件夹配置教程KUbuntu 18.04用户现在可以试用KDE Plasma 5.12 LTS桌面给Ubuntu 17.10启动网易云写了个脚本在ubuntu16.04上安装MiniTools在Ubuntu上体验LXD容器Deepin/Ubuntu Android模拟器启动失败

加载全部内容

Ubuntu系统排行