普通视图

入手小牛电动FX风速版

2025年12月7日 22:23

10月中,在二手东订购了小牛FX风速版。当月底提车,骑行一个月,浅水几句,聊作记录。

小牛FX风速版

动机

广州算是国内禁摩持续时间比较长的区域。本人身居广州郊区,属于此政策受害者。因为摩托车是中短途出行的最经济方式,特别在郊区这种公共交通线路尚不完善的区域。虽然属于禁摩区域,是因为郊区原因,交管部门也没有太充足的资源去执行禁止相对庞大的出行需求。这里的郊区还是很多外地摩托车或者其他不太合规的摩托车在道路上形式。

虽然管理上没有太严格,但是由于禁摩衍生出来的一条奇葩规定让我比较麻烦:禁摩区域内的加油站不得给摩托车加油。这规定的杀伤力比禁摩本身还强。目前只能通过技术性手段在个别管理比较通融的油站进行加油。我原来有一辆GY6鬼火摩托车(RSZ祖国版),油箱大概5L。化油器版本本来就比较耗油,油箱容积又比较少,因此加油便成了难题。

结合家里2年前购置的深远电动车使用情况,决定将上面的GY6替换成电动车。

价格定得精准,GY6在海鲜市场一放便被秒😄。

选择

家里已经有一辆电动自行车,因此选择电动摩托车会是一个相对更优的选择。时下热门的电动车品牌主要是那几家。逐家试驾了一下,驾驶感受最好的是极核,可能是因为春风旗下的产品,有一定的摩托车制造基底。智能做得好的是九号。相对于前面两家,小牛这波可能广告做得不错。其实选择小牛的主要原因是:极核做得太像摩托车,但我还有一辆踏板摩托车,实际驾驶质感比电动的好很多;九号智能化做得好,也是我很喜欢的,但是车架看上去很单薄,我体重直逼90KG,骑起来好像胖子骑狗的既视感。小牛相对平庸一点,但各种参数看上去比较适合我,因此就选择了它。

电瓶选择

原车自带的是铅酸电瓶,对于3kw电机无法胜任。后来结合自身使用需求,在店家的推荐下,上了72V80A的三元电瓶。以1A跑2KM的能耗估算,电瓶正常跑100KM出头的续航里程是比较经济的选择。可以使用我前段时间手搓的充电器,充满大概10小时。充电效率慢了点,后来又挫了一个20A的充电器,充电时间可以缩短1半。

使用感受

速度

前后骑行了1个月时间,主要是附近溜达。公路上弹射模式速度能到80KM/H左右。日常主要是以舒适挡位模式行驶(速度约40KM/H),完全能满足短途个人出行需求。

载货

大踏板有比较强的载货能力,也是这个原因被定义为外卖车。这个载货能力是我比较满意的。

适应性

在附近的非铺装路面骑行,减震和动力尚能接受,但驾驶质感相对于150龙骨踏板还是差很远,感觉不是同一类产品。
非铺装路面

缺点/不足

因为我预订的时候尚无带ABS版,在一次拐弯急刹过程中,后轮出现打滑情况,因为车速本身不快,结果也没有出状况。如果在雨天,骑行时可能要关注因为无ABS辅助刹车功能引起的适用性状况。

总结

第一次买电摩,相对于传统摩托,还有很大的提升空间。
特写

手搓小钢炮

2025年10月16日 21:25

两年前入手一辆电驴,勉强吃到时代的红利,作为广州路权最大的交通工具,无敌的存在。

快乐的时光总是显得那么短暂,电瓶在坚持2年后终于倒下。其中2节电芯鼓包挂掉,维修难度很大,原来的电芯健康状况也一般。检查发现主要原因除了电芯本身质量一般外,日常充电习惯也有关系。2年来,一直是循环充电,没有按照磷酸铁锂电芯的特性进行使用,存在较多过充过放,以致加速电芯损耗。

[...]

Google域名福利番外

2025年9月25日 23:00

一年前在《Google域名福利终篇》提到 Google 将整体域名业务出售给 Squarespace 。域名价格从 TRY195+ 涨到 TRY400+,比较价格优势荡然无存。这一年多时间里,经综合评估性价比后,我陆续转出了部分域名到 Cloudflare 。

近期有域名到期,因此今天我再次进入 Squarespace 准备将临期域名转移到 Cloudflare 。看到 Squarespace 面板上依旧简约地标注着“Add year for TRY400”心想:这价格还是贵。不过身体鬼推神差地将鼠标点选页面上的”TRY400”,顺手Google出价格。

土耳其里拉汇率图

搜索结果如上图。

好家伙,一年多时间,土耳其新里拉居然跌成这个熊样。马上查最新的域名转移及续费优惠比价清单,如今域名常规优惠低价基本都压在 $10 附近。虽然 Squarespace 价格依旧是 TRY400,通过汇率差实际价格从原来的 $12 跌到 $9.64 ,比较起来价格优势已经出现了。于是,我把计划转移的临期域名直接在 Squarespace 上续费作罢,相比 Cloudflare 不但价格能便宜一点,还省事。

友情提示

  1. Squarespace 收购 Google Domain 后差强人意,搞不好有再次被出售的风险。
  2. 除非本身有米在 Squarespace,不建议盲目转入。
  3. 关注付款方式,大部分信用卡(如万事达和VISA,PayPal)汇率转换(如国内的信用卡外币信用额度一般只有美刀,消费美刀以外的外币实际计算方法是把消费的币种先转换成美元计算)需要手续费,费用一般是账单金额的 2% - 8% 。

给PVE虚拟机磁盘无损扩容

2023年11月19日 01:26

家里使用的NAS是DIY的All In One主机,母鸡是PVE(Proxmox Virtual Environment)。

为便于管理和维持良好的独立性,我把主要的Docker服务部署在基于PVE虚拟机的开源NAS系统OMV(openmediavault)上。由于计划赶不上变化,原先给OMV预分配的磁盘空间已经耗尽,以致web管理页面也无法登录,只能通过ssh方式管理。为解决这个问题,在保数据的前提下,从母鸡分配磁盘空间进行扩容已是唯一选择。

原本以为扩容操作可以直接通过PVE的web管理页面便能轻松实现(我部分虚拟机确实是这样)。但是,OMV这个情况和我预想的还是有点偏差,扩容后的空间无法合并到根目录上。具体原因是部署OMV时,我使用安装方式为虚拟机IOS镜像直读模式。从win32开始遗传的电脑使用习惯(安装直接点“下一步”)安装的OMV,自然自带swap分区。由于swap分区的存在,导致pve扩容的空间无法和原来OMV磁盘组成连贯分区,无法实现根目录扩容的目的。网上清一色的教程均为简单的独立分区无损扩容,并没有提及这种带其他分区的磁盘该如何扩容。因此,我写下这个笔记供后续遇到类似需求的朋友作为参考,避免踩坑。

存在swap分区的PVE虚拟机磁盘如何扩容?

母鸡扩容

母鸡扩容的方法很简单,可通过PVE的Web管理系统->目标主机->硬件->选定目标磁盘->操作菜单:磁盘操作->调整大小,给你目标的主机设置需扩容的磁盘空间。

扩容操作

信息确认

通过ssh工具访问OMV,查看磁盘的基本情况。

PS:本例子使用的磁盘均为sda

$sudo parted /dev/sda 'unit s print' free
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 14336000s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start      End        Size       Type      File system     Flags
        63s        2047s      1985s                Free Space
 1      2048s      10485759s  10483712s  primary   ext4            boot
        10485760s  10487805s  2046s                Free Space
 2      10487806s  12580863s  2093058s   extended
 5      10487808s  12580863s  2093056s   logical   linux-swap(v1)
        12580864s  14335999s  1755136s             Free Space

如上面shell信息所示,sda1被扩容的空间在磁盘分区的最后,中间隔着一个swap分区,这样扩容的空间是无法直接分配到sda1上。

如果要实现无损扩容必须把swap分区删除,然后把sda1扩容后再重建swap分区。

第一步,关闭swap分区

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           992M         52M        464M        3.2M        475M        784M
Swap:          1.0G          0B        1.0G

通过free命令查看swap是否存在占用,如果没有,直接关掉;如果有,可以尝试重启下该虚拟机。

$sudo swapoff /dev/sda5

第二步,重新配置分区列表

$sudo fdisk /dev/sda

(注意: 假如你的虚拟机磁盘初始扇区是63而不是2048, 你需要在fdisk命令后面增加一个参数 -c=dos)

参考下面的操作步骤删除swap分区和重建分区列表。

PS:本操作虽然是无损扩容,但数据无价建议有条件的一定要先备份数据!!!

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p
Disk /dev/sda: 6.9 GiB, 7340032000 bytes, 14336000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9e11c6df

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1  *        2048 10485759 10483712    5G 83 Linux
/dev/sda2       10487806 12580863  2093058 1022M  5 Extended
/dev/sda5       10487808 12580863  2093056 1022M 82 Linux swap / Solaris

Command (m for help): d
Partition number (1,2,5, default 5): 2

Partition 2 has been deleted.

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-14335999, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-14335999, default 14335999): 12242941

Created a new partition 1 of type 'Linux' and of size 5.9 GiB.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (12242942-14335999, default 12242944):
Last sector, +sectors or +size{K,M,G,T,P} (12242944-14335999, default 14335999):

Created a new partition 2 of type 'Linux' and of size 1022 MiB.

Command (m for help): a
Partition number (1,2, default 2): 1

The bootable flag on partition 1 is enabled now.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

这部分有两个地方需要注意的:

1、sda1扩容后的总大小必须是整个磁盘减去swap分区的大小,我上面的例子sda1就是: 14335999-2093058=12242941

2、fdisk分区使用‘a’命令是用来激活主分区,这个一定要重新激活。

第三步,重载分区列表

这里使用到的是partprobe,OMV是基于Debian的,默认应该安装了,如果没有安装请自行搜索安装方法.

$ sudo partprobe

第四步,重新扫描磁盘容量

使用resize2fs命令对sda1进行扩容有重扫描容量。

$ sudo resize2fs /dev/sda1
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 10
The filesystem on /dev/sda1 is now 38833617 (4k) blocks long.

第五步,重新配置swap分区

因为fdisk对ext4扩展分区支持不足,建议使用cfdisk进行重新配置swap分区。

$ sudo cfdisk
            

选择sda2分区,转换成82 Linux swap / Solaris类型并保存。

第六步,重新激活swap分区

$ mkswap /dev/sda2
/dev/sda2
UUID=d58bf1cb-d27a-487d-b337-056767fd5ad6 none swap sw 0 0

记下上面的UUID。

用命令行重新激活swap分区。

$ swapon /dev/sda2

通过命令把上面的UUID修改到fstab中

$ sudo nano /etc/fstab
# swap was on /dev/sda5 during installation
UUID=d58bf1cb-d27a-487d-b337-056767fd5ad6 none            swap    sw              0       0

确保没有问题后,重启虚拟机。

至此,无损扩容工作便全部完成。

祝你好运!

❌