分类 疑难杂症 下的文章

修复京东无线宝TF卡分区

背景

手里有个老一代京东无线宝,结果发现更新固件到4.x版本以后,内置存储空间变成了17M,实际应该是64G才对,网上搜索各种办法都没解决,比如开机红灯闪烁的时候戳复位键所谓的低格,然而并没有什么用。

开始折腾

拆机

网上说这个路由器拆开以后,里面负责存储挖豆的缓存设备其实是一个TF卡。于是动手开拆,吐槽一下,这玩意是真难拆,除了表面的螺丝,那个卡扣太反人类了,可能根本就不想让用户拆开。废了九牛二虎之力以后终于拆开了。

定位问题

拆出来TF卡,找了个读卡器,插电脑上。使用Diskgenius打开TF卡分区发现,TF卡被分为了6个分区,前面4个是ext4的分区,第5个分区是一个swap交换分区,然后第最后1个分区文件系统依旧是ext4,对比分区大小发现,最后一个分区的容量刚好是17M,由此可知,系统固件将TF卡的最后一个分区识别为了内置存储空间。然后再往前看,第四个分区居然有50GB+,奇了怪了,按道理应该把第四个分区识别为内置存储空间啊,咋个把最后的“零头分区”识别为内置存储了?

简单粗暴解决

我尝试了一下,直接把swap分区和最后的17M零头分区删除,然后把空间合并到分区4,完成以后把TF卡插回京东无线宝开机,居然神奇般解决了,内部存储空间识别正常了,识别到了50GB+,也开始正常缓存了,指示灯也变绿了,问题解决。唯一的问题就是把swap分区删掉了,不知道会不会对性能有影响

后话

期间没有截图和拍照,只是纯文字记录过程,下次遇到类似问题有个参考。

j4125 软路由折腾日记

ESXi 篇

ESXi下载地址

https://customerconnect.vmware.com/en/evalcenter?p=free-esxi8

ESXi安装的时候提示“Shutting down firmware services...Relocating modules and starting up the kernel...”

在安装程序引导界面出现以后按Shift + O,加入参数

ignoreHeadless=TRUE

即可解决。

ESXi网卡直通以后,爱快无法启动,同时直通的网卡提示“已开启/需要重新引导”

解决办法是在ESXi的 主机 - 管理 - 高级设置 里,将

VMkernel.Boot.disableACSCheck

设置为True。

ESXi核显直通给群晖以后,重启后群晖无法启动,同时核显提示“已开启/需要重新引导”

原因是ESXi开机的时候会强制占用核显,导致直通失效,解决办法是在ESXi的 主机 - 管理 - 高级设置 里,将

VMkernel.Boot.vga

设置为False。

PVE 篇

PVE 如何将img导入磁盘

qm importdisk <虚拟机ID> <img文件路径> local-lvm

PVE 网口直通报错

nano /etc/default/grub

修改GRUB_CMDLINE_LINUX_DEFAULT为以下值

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_port_pm=off"

更新grub并重启

update-grub
reboot

PVE 核显直通

nano /etc/default/grub

修改GRUB_CMDLINE_LINUX_DEFAULT增加以下参数

video=efifb:off

修改

nano /etc/modules

添加

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

用以下命令查看PCI设备ID并记下来

lspci -nn

可以看到核显ID为8086:3185

00:02.0 VGA compatible controller [0300]: Intel Corporation GeminiLake [UHD Graphics 600] [8086:3185] (rev 06)

添加到vfio的配置中

nano /etc/modprobe.d/vfio.conf

添加

options vfio-pci ids=8086:3185

修改

nano /etc/modprobe.d/blacklist.conf

添加

blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915

更新引导

update-initramfs -u
update-grub

PVE 硬盘直通

查询硬盘列表

ls -l /dev/disk/by-id/

直通

qm set <虚拟机ID> -<sata|scsi|ide><序号> <硬盘设备路径>

解决python安装ta-lib报错的问题

问题

Failed to build ta-lib
ERROR: Could not build wheels for ta-lib, which is required to install pyproject.toml-based projects

原因

通过pip安装python的ta-lib包需要调用Visual Studio编译ta-lib库,若没有安装visual studio或者ta-lib库就会编译失败

解决办法

由于安装ta-lib库和visual studio太过麻烦,
https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib
提供了预编译的python包,
下载对应版本以后,使用pip安装即可,注意把TA_Lib‑0.4.24‑cpXXX‑cpXXX‑XXX.whl替换为实际的文件名

pip install TA_Lib‑0.4.24‑cpXXX‑cpXXX‑XXX.whl

解决精简版系统Arduino驱动安装问题

问题

一部分人反馈说他们无法正常安装Arduino的驱动,安装完Arduino驱动以后,设备管理器里Arduino设备出现感叹号,无法正常启用。设备状态中出现错误信息:

Windows 无法加载这个硬件的设备驱动程序。驱动程序可能已损坏或不见了。 (代码 39)

找不到对象名。

或者:

Windows 无法验证此设备所需的驱动程序的数字签名。某软件或硬件最近有所更改,可能安装了签名错误或损毁的文件,或者安装的文件可能是来路不明的恶意软件。 (代码 52)

解决

出现这个问题的主要原因是:Arduino的驱动程序依赖于Windows系统自带的USB串口驱动,精简版系统精简或者替换了USB串口驱动,导致Arduino的驱动无法加载这个依赖而工作不正常。为此我封装了一个Arduino的驱动程序,并且自带修复Windows自带串口驱动程序的功能,涵盖Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10等系统,包括各个SP版本。
下载地址:https://pan.baidu.com/s/1gfaPp4n
使用方法:下载以后,直接运行压缩包中的程序即可,修复系统自带驱动以及安装Arduino驱动过程中,可能会有安全软件提示修改系统文件,请选择允许。

cnpm的坑导致部分模块工作不正常

问题

在使用cnpm install部署项目环境以后,发现browserify工作不正常,产生如下错误:

> browserify src/ui/index.js -o dist/index.js -t [babelify browserify minifyify]

Error: Cannot find module '../../../../_is-buffer@1.1.5@is-buffer/index.js' from                     'E:\Data\Projects\Git\Project\node_modules\_core-util-is@1.0.2@core-util-is\lib'
    at E:\Data\Projects\Git\Project\node_modules\_resolve@1.1.7@resolve\lib\async.js:55:21
    at load (E:\Data\Projects\Git\Project\node_modules\_resolve@1.1.7@resolve\lib\async.js:69:43)
    at onex (E:\Data\Projects\Git\Project\node_modules\_resolve@1.1.7@resolve\lib\async.js:92:31)
    at E:\Data\Projects\Git\Project\node_modules\_resolve@1.1.7@resolve\lib\async.js:22:47
    at FSReqWrap.oncomplete (fs.js:123:15)

- 阅读剩余部分 -