Published on

电脑问题解决日志

Authors

电脑问题解决日志

1. This application failed to start because no Qt platform plugin could be initialized

解决办法合集,最终是看了stackoveflow提到删除环境变量中的QT_PLUGIN_PATH变量即可

image-20241027160744430
2. 局域网内其他主机ping不通本机

在防火墙新建入站规则,允许ICMP_v4连接

img

这样就可以ping通了

3. 在创建hyper-v虚拟交换机时出现 添加外部虚拟交换机失败,以太网接口绑定失败 灾难性故障

最后关闭wlan网卡的internet共享就好了,起初开启是为了与qemu虚拟网卡进行共享,但是一直都无效,因此可以关闭了

img
4. 解决wsl无法和局域网内其他主机通信的问题

由于在尝试ros2的时候在wsl上没有办法和同局域网下的ros2进行通信,起初以为是端口没有开放,但是开放端口后依然没有办法通信,因此查阅相关资料后感觉应该是wsl虽然和主机是共享ip,但是实际上wsl依然是和主机外的局域网的主机是不在同一个网段的,因此通过创建hyper-v虚拟交换机实现给wsl也分配一个局域网ipv4地址

在hyper-v管理器(要先确认开启了hyper-v)中创建一个外部的虚拟交换机,外部网络指定为主机无线网卡

image-20241029113443130

然后在用户目录下创建 .wslconfig 文件,并输入以下内容

[wsl2]
networkingMode=bridged
vmSwitch=WSLBridge
ipv6=true
guiApplications=true
localhostForwarding=true

从上到下依次表示

  • 桥接模式
  • 指定使用的网卡
  • 启用ipv6
  • 开启GUI应用程序支持
  • 指定wsl2 VM中的通配符或localhost端口通过localhost:port 从主机连接

然后重启wsl或者重启主机即可,但是中途出现了小问题,我重启一次以后wsl的eth0就获取不到任何ip了,仔细检查网卡配置时,发现windows的网卡名字并非和虚拟交换机上的一致(图中已经修改过了,原本为VEthernet(WSLBridge),重命名该网卡以后再重启即可)

img

wsl上的ip分配

image-20241029114219773

wsl也可以和同局域网下ros2进行通信

image-20241029114327897

参考资料:ubuntu子系统与局域网通讯配置

5. 突然有一天发现wsl无法ping通外网的问题

捣鼓来捣鼓去发现都找不到问题,干脆直接移除.wslconfig退出桥接模式文件恢复以前的配置

参考资料:

6. WSL配置(非桥接版和主机互通)
  1. 配置windows防火墙,配置wsl准入,找到wsl指向主机的网卡,可以通过cat /etc/resolv.conf找到wsl指向的ip,对应ip的网卡就是相关的网卡
image-20240919090926752
  1. windows下打开终端管理

    New-NetFirewallRule -DisplayName "WSL" -Direction Inbound  -InterfaceAlias "vEthernet (WSL)"  -Action Allow
    

    其中vEthernet (WSL)改为上面的网卡名称

  2. 然后wsl就能ping通主机了

    ping `cat /etc/resolv.conf | grep nameserver | awk '{print $2}'`
    
7. pip下载速度慢

配置镜像源即可,若不想永久配置,则输入-i [镜像源地址]即可

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
8. 服务器硬盘挂载点掉了

家里的服务器显示home文件夹不见了,仔细一查发现挂载点掉了,输入lsblk查看设备和挂载点情况,发现主硬盘没有挂载点

[zaizai@OpenWrt /]$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0 726.5M  0 loop /overlay
sda      8:0    0 111.8G  0 disk 
├─sda1   8:1    0   100M  0 part 
├─sda2   8:2    0    16M  0 part 
├─sda3   8:3    0   111G  0 part 
└─sda4   8:4    0   679M  0 part 
sdb      8:16   1   7.5G  0 disk 
├─sdb1   8:17   1    32M  0 part /boot
│                                /boot
├─sdb2   8:18   1   944M  0 part /rom
└─sdb3   8:19   1   239K  0 part 
zram0  253:0    0   1.9G  0 disk [SWAP]

通过parted命令查看硬盘的分区表类型,是mbr还是gpt

sudo parted /dev/sdX print

知道自己的硬盘是gpt类型的之后,使用gdisk工具进行分区

1、进入 gdisk 工具,并输入 o 创建新的保护性主引导记录 (MBR)2、输入 n 进入新建分区模式。
3、选择默认的分区号和起始扇区。
4、设置结束扇区为 50GB(+50G)。
5、选择默认分区类型('Linux filesystem'6、输入 w 保存更改并退出 gdisk,成功创建了新的 50GB 大小的 Linux 文件系统分区。

然后就是格式化分区和挂载分区

# 格式化分区
mkfs.ext4 /dev/sdb1(对应的分区)
# 挂载分区
mount /dev/sda1 /home

然后设置开机自动挂载

vi /etc/fstab
# 添加并保存
/dev/sda1 /home ext4 defaults 0 0

重启即可

参考资料:Linux系统硬盘挂载