WRY

Where Are You?
You are on the brave land,
To experience, to remember...

0%

kubuntu & win10 双系统

重点提示

使用linux系统作为主力,还是一个十分折腾的过程,现在年轻,还能试试,哈哈!

系统

UI配置

安装了Kubuntu的系统,仿照Mac的风格更改了外观配置,此处就不记录了,谁知道明天我还喜不喜欢这套风格呢~,快捷方式有时间还是需要备份一下。两个星期后,系统一崩全白玩,还是默认UI最香。

2021.01.18日更新:仿Mac的UI界面,除非能真正取代Mac的UI地位,否则就如同小丑一样,只有滑稽。

i3听说挺棒的,目前还没有时间配置体验。

2021.06.23 桌面经常崩,已经疯了

解决办法

  • 识别桌面系统

    1
    env | grep DESKTOP_SESSION
  • 重启plasma桌面

    1
    killall plasmashell; plasmashell&

配置代理

全局代理配置

暂时使用了笔记本电脑上的代理,安装了v2ray软件(自动实现分流到不同的代理上),然后通过如下的步骤配置全局系统代理。

/etc/profile文件中配置(在kubuntu的proxy中配置一直没有成功,原因未知)

1
2
export http_proxy=http://127.0.0.1:1080
export https_proxy=http://127.0.0.1:1080

重新登录系统,chrome浏览器生效。

apt代理配置

参考,在/etc/apt/apt.conf.d/proxy.conf文件中配置

1
2
Acquire::http::Proxy "http://127.0.0.1:1080/";
Acquire::https::Proxy "http://127.0.0.1:1080/";

或者

1
2
3
4
Acquire {
HTTP::proxy "http://127.0.0.1:1080";
HTTPS::proxy "http://127.0.0.1:1080";
}

docker代理配置

参考,理论上在/etc/profile文件中配置了http_proxyhttps_proxy环境变量会直接对docker生效,docker也可以配置自己的代理。

创建文件/etc/systemd/system/docker.service.d/http-proxy.conf,并设置。其中NO_PROXY是设置不走代理的IP或者域名。

1
2
3
4
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:1080"
Environment="HTTPS_PROXY=http://127.0.0.1:1080"
Environment="NO_PROXY=localhost,127.0.0.1,192.168.*"

设置生效

1
2
3
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
$ sudo systemctl show --property=Environment docker # 验证结果

硬盘挂载

硬盘挂载强烈建议使用UUID,设备名称是有可能发生变化的。

UUID-Universally Unique IDentifiers全局唯一标识符

磁盘UUID的获取方法:

1
2
3
4
# 查看某个分区
$ sudo blkid /dev/sdb1
# 查看所有的
$ sudo blkid

常用的系统配置

cron

ubuntu系统下打开cron的日志功能,修改文件/etc/rsyslog.d/50-default.conf ,取消cron.*一行的注释,最后重启系统日志sudo service rsyslog restart

x11vnc server

  • 创建文件/etc/systemd/system/x11vnc.service

    1
    2
    3
    4
    5
    6
    7
    8
    [Unit]
    Description=Start x11vnc at startup.
    After=multi-user.target
    [Service]
    Type=simple
    ExecStart=/usr/bin/x11vnc -auth /run/user/1000/gdm/Xauthority -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5800 -listen 0.0.0.0 -shared
    [Install]
    WantedBy=multi-user.target
  • 创建密码文件 & 启动服务 & 重新载入配置

    1
    2
    3
    4
    5
    sudo x11vnc -storepasswd /etc/x11vnc.pass
    sudo chown jingtao /etc/x11vnc.pass
    sudo systemctl enable x11vnc
    sudo systemctl restart x11vnc.service
    sudo systemctl daemon-reload

显卡驱动

AMD显卡驱动

RX 580驱动地址

在安装完驱动之后,出现了一次睡眠之后花屏和息屏之后花屏以及一次正常使用中系统卡死的情况。在更改完grub之后,情况没有好转。我貌似翻车了。

驱动命令

1
2
$ sudo lshw -c video # 查看显卡的驱动
$ dpkg -l | grep -i nvidia # 查看安装的nvidia驱动

在确认显卡的驱动没有问题之后,还是会出现睡眠之后花屏的情况(之前购买的迪兰 470D没有遇到过类似的情况(但是我貌似也没有睡眠过))。但在windows的时候确实没有遇到问题(甜甜圈和游戏都很OK),也可能是因为在windows的时间比较短吧,没有遇到类型的情况。

(逃了逃了,RX 4xx和RX 5xx之类的显卡是真的惹不起。换一个RTX 960的显卡,凑合用吧,稳定第一。

最终还是没有忍住(性价比太香了,店家的质保也很优秀),重新安装了一个ubuntu 20.04的系统(系统安装过程中自动安装了amdgpu的驱动),在更改了grup文件之后,ubuntu暂时没有遇到过花屏的问题。回到kubuntu系统,实在是不想重新安装系统,就重新测试了一下,目前运行良好。(依旧翻车了,和之前一样,随机花屏

ubuntu的显卡驱动问题,着实耽误了我很多时间,主要这期间还有很多任务需要完成,突然的花屏就有点绝望。不过只要不是硬件有问题,我觉得这都是在切换linux系统作为主力路上的必经坎坷。稳住!

GTX 960 (七彩虹 4G 版)到了,安装之后,没有出现花屏的情况,在系统中就能选择安装英伟达的显卡驱动,倍感亲切,十分友好。尽管这张N卡比A卡贵了30多块钱,性能还是A卡的一半,但是稳定第一啊。试用3天,没有问题就退掉之前的A卡,用960愉快的玩耍吧。

(在使用的过程中,发现A卡的显存占用特别大,但是差不多使用的情况下,N卡的显存就明显少很多,唉,说好的AMD YES!呢。

创建网桥

软件

Snap

注册软件到启动栏

snap安装的应用程序会在/var/lib/snapd/desktop/applications下创建启动的快捷方式,而kubuntu启动栏中的软件启动快捷方式都是存放在/usr/share/applications下面。所以需要创建软链接,命令如下。

1
$ sudo ln -s /var/lib/snapd/desktop/applications/* /usr/share/applications/

安装常用软件

1
2
# 自动识别图片公式
sudo snap install mathpix-snipping-tool

Flatpak

安装steam的时候一次成功,不错的体验。可惜尘埃仍不能运行的比较流畅,又卸载了。

监控 & 压力测试

参考链接

1
2
3
sudo apt install python3-pip stress
sudo pip3 install s-tui
sudo s-tui

Jetbrains Toolbox

Jetbrains 修复全局菜单

参考链接

Screenshot_20210118_140745

虚拟机运行双系统

VirtualBox 体验

虚拟机使用了virtual box,因为他开源免费,并且正好可以给minikube来用,十分的方便了。虚拟机的主要用处除了给minikube来隔离环境,还用来启动硬盘上的windows系统,实现一个系统两种启动方式。这里简单记录一下遇到的坑。

VirtualBox 启动双系统

主要分为如下几步,参考链接:Virtualbox直接运行物理分区的系统Linux下VirtualBox启动物理硬盘上已安装的Window 8系统

  • 创建指向物理硬盘的虚拟磁盘

    1
    2
    3
    4
    5
    6
    $ sudo chmod o+rw /dev/nvme0n1 # 不授权,在下面创建虚拟磁盘的时候会出现错误
    $ sudo chmod o+rw /dev/nvme0n1p1 # uefi分区
    $ sudo chmod o+rw /dev/nvme0n1p3 # windows系统
    # 不对linux系统所在的分区进行授权,以免一个系统两次启动,造成分区受损
    $ VBoxManage internalcommands createrawvmdk -filename /path/win10.vmdk -rawdisk /dev/nvme0n1 -partitions 1,3 -relative # 虚拟磁盘只能看到物理硬盘的1,3分区
    # 屏蔽掉2号分区之后,所有对2好分区的读操作都是0,写操作被忽略
  • 创建虚拟机

    • 创建一个不带磁盘的win10类型的虚拟机
    • 添加nvme驱动的虚拟磁盘(后来发现还是需要AHCI 类型的驱动器,和nvme相比,速度差异几乎感受不到)
    • 使用UEFI 引导项

遇到的问题

  • 默认UEFI引导是之前的旧引导,不能引导后来安装的windows。根据磁盘上的系统情况,重新配置UEFI 选项

    1
    2
    3
    $ sudo grub-mkconfig -o /boot/grub/grub.cfg  # 推荐安装grub-customizer
    # 2021.01.18日更新,也可以通过如下命令直接更新
    $ sudo update-grub
  • 真的遇到了同一个linux系统被启动了两次的情况(windows自动重启,默认进入了linux环境),磁盘分区变成只读模式,并且在重启之后遇到了initramfs unpackingfailed Decoding failed错误的情况

    这个错误经常会因为系统突然断电,异常关机导致(我发现计入了错误的系统之后,强制关闭了虚拟机,之后发现磁盘不可写,有强制关闭了物理机),可以通过如下命令进行修复

    1
    2
    3
    $ fsck -y /dev/disk_no # 修复系统盘 
    # fsck 是一个好用的磁盘检测修复命令
    # -y 对所有问题都回复yes
  • 屏蔽掉部分分区之后,找不到UEFI的grub文件夹

    更换磁盘驱动器之后,问题解决掉了。

  • windows进入系统之后,出现了Inaccessible Boot Manager的蓝屏错误。解决方案:Windows 10 SSD/NVME support

    磁盘驱动器更换成AHCI的sata模式可以解决掉,并且可以使用屏蔽掉了某些磁盘分区的虚拟磁盘,保护主系统安全。

  • 在虚拟机中使用Windows,有明显的卡顿情况

    受限于虚拟机可以使用到的虚拟GPU,这个问题还是比较难以解决。寻找新的虚拟机方案,最好可以直通显卡,正好用上之前的GTX950。或者安装更为低消耗的win7系统,把office全家桶安装到虚拟机中。win10只负责来娱乐吧。

    后续:这个使用远程登录界面会有一个比较好的使用体验

  • NTFS 变成只读格式

    参考网址,变成只读格式的原因是在windows中启用了快速启动之类的选项(关闭之后,问题解决)。等回到学校之后,安装上以前的闲置sata固态硬盘,就把windows换到独立的硬盘上,让ubuntu独享整个SN 750 500G NVME固态硬盘。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ sudo ntfsfix /dev/sda1
    $ sudo umount /dev/sda1
    $ sudo mount -t ntfs -w /dev/sda1 /data
    # 关闭容器,修复磁盘重启启动
    containers = $(shell docker ps -aq)
    ## 修复ntfs只读格式的磁盘
    ## 2021.01.18日更新 关闭windows快速启动之后,就没有出现磁盘的问题
    fix_disk_dev_sda:
    docker stop $(containers)
    sudo umount /dev/sda1
    sudo ntfsfix /dev/sda1
    sudo mount -t ntfs -w /dev/sda1 /data
    docker start $(containers)

目前已经全面放弃了virtual box,放弃的原因是无法实现显卡直通,后续使用的是QEMU/KVM,令人不爽的是,我依旧没有显卡直通成功,一怒之下把GTX 950卖了。并且不能虚拟机启动物理硬盘的系统了,装了个win10的真虚拟机,代替平时的windows需要。

KVM 虚拟机配置

在使用virtual box的过程中,界面的延迟卡顿是难以接受的痛,并且使用win10的时候,CPU的负载会很高,已经不是可以接受的范围内了。为了达到良好的显示效果和使用体验,我决定转战kvm虚拟机,直通显卡来实现这个目标。NVIDIA的GTX 950失败了,时间宝贵,能用万岁!

2022.2021.01.18日 继续折腾:

双系统 & 虚拟机安装

KVM启动双系统的方式比想象中的简单太多了。在单独的一个硬盘上安装了windows之后(安装的过程中屏蔽了原来的系统盘,避免了相互干扰,注意关闭windows的快速启动功能),只需要将整个磁盘挂载给KVM虚拟机即可。如果只有一个硬盘,可以参考这个,通过虚拟raid重新组织硬盘,和virtual box相比感觉更cool.

Screenshot_20210118_140013

注意配置芯片组为Q35, 性能更优,使用UEFI 的fd文件

Screenshot_20210118_141352

cpu的配置设置如下

Screenshot_20210118_141532

安装kvm VirtIO 驱动,优化性能,实际测试网速得到了巨大的提升,界面流畅度也有比较大的提升。

直通显卡,提升性能

买了Quadra 2000显卡,希望直通给虚拟机提升性能,安装之后再说。显卡到了,直接添加pcie设备就直通成功了,应该是因为后来添加的显卡,宿主系统没有对其进行控制。在驱动管理页面可以看到,系统没有自动为Q2000安装驱动。

Screenshot_20210120_095813

共享键鼠,欢乐打工

barrier是大名鼎鼎synergy的孪生兄弟,有一个共同的爸爸,但是barrier是个更慷慨的孩子,延续了爸爸的传统,始终保持开源,并且和synergy不相上下。

自闭了,打死连不上,一直提示超时,这是为什么呢? 在修改了端口之后终于可以了,使用体验还是挺不错的。可能是因为端口冲突或者防火墙的原因吧。

远程桌面连接虚拟机

1
2
3
4
5
6
7
8
9
10
11
12
$ rdesktop -d AzureAD \  # 账户域,安装的windows使用了学校的微软帐号,所以默认用户域是AzureAD
-u username \ # 中文也是可以的
-p passwd \ # 密码
-g workarea \ # 窗口大小
-D \ # hide window manager decorations
-a 32 \ # connection colour depth
-x 0x80 \ # RDP5 experience (m[odem 28.8], b[roadband], l[an] or hex nr.)
-eEM \ # 取消连接加密 在窗口中显示本地鼠标指针,提升使用体验
-r disk:share=/home/jingtao \ # 挂载磁盘
-r sound:local:ALSA \ # 设置声音
-r clipboard:PRIMARYCLIPBOARD \ # 配置剪切板等
win.jingtao.fun