在VMWare下扩展 ubuntu 20.04 磁盘分区(命令行扩展 /dev/mapper/ubuntu--vg-ubuntu--lv)

image-20220420151248081

虚拟机的磁盘分配小了,跑了点程序,空间开始不足。需要扩展下磁盘大小。

1 . VM里面调整虚拟磁盘大小

如上图所示。需要关闭虚拟机。

其实增加一块硬盘也行,在Ubuntu20.04的 LVM文件系统下,扩展当前磁盘和额外加一块硬盘没啥使用区别。尤其对虚拟机而言(实体机可能会碰到若干块磁盘性能不一的情况)。

2. 在Ubuntu guest系统内扩展LVM

a. 确认安装虚拟机的时候用了LVM

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 391M 2.0M 389M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 19G 14G 4.6G 75% /
tmpfs 2.0G 16K 2.0G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda2 976M 207M 703M 23% /boot
/dev/loop0 56M 56M 0 100% /snap/core18/2284
/dev/loop3 44M 44M 0 100% /snap/snapd/14978
/dev/loop1 56M 56M 0 100% /snap/core18/2344
/dev/loop2 68M 68M 0 100% /snap/lxd/22753
/dev/loop4 68M 68M 0 100% /snap/lxd/22526
/dev/loop5 62M 62M 0 100% /snap/core20/1376
/dev/loop6 44M 44M 0 100% /snap/snapd/15177
/dev/loop7 62M 62M 0 100% /snap/core20/1405
tmpfs 391M 0 391M 0% /run/user/1000

​ 所以,确定是使用lvm,看名字,组名是ubuntu-vg,lv是ubuntu-lv。

b. 命令验证下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$sudo vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <19.00 GiB
PE Size 4.00 MiB
Total PE 4863
Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 0 / 0
VG UUID zI0Csz-Sii1-0fpN-dxtc-oRrr-yo8d-yqHHVk
$sudo lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID Gg0p3f-ZnVI-zZ76-0kUN-tjDe-LwXu-Gt2oQC
LV Write Access read/write
LV Creation host, time ubuntu-server, 2022-01-14 02:50:56 +0000
LV Status available
# open 1
LV Size <19.00 GiB
Current LE 4863
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

​ 基本OK。

c. 创建下物理卷

一般来说,物理卷对应传统的分区概念。作为LVM的”库存弹药“使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查看下
$sudo fdisk -l
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VMware Virtual S
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: gpt
Disk identifier: C9FEEF7F-29EC-4678-9D77-33541B85AA3F
Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 2101247 2097152 1G Linux filesystem
/dev/sda3 2101248 41940991 39839744 19G Linux filesystem
Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 18.102 GiB, 20396900352 bytes, 39837696 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

​ 嗯。40G的硬盘上面3个分区后,还有18.102G的空闲空间。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 创建个sda4,把空闲空间搞成一个分区好了
$sudo parted /dev/sda
GNU Parted 3.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print free
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 1076MB 1074MB ext4
3 1076MB 21.5GB 20.4GB
21.5GB 42.9GB 21.5GB Free Space
(parted) mkpart primary ext4 21.5GB 100%
(parted) print free
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 1076MB 1074MB ext4
3 1076MB 21.5GB 20.4GB
4 21.5GB 42.9GB 21.5GB ext4 primary
42.9GB 42.9GB 1032kB Free Space
(parted) quit
$sudo pvcreate /dev/sda4
Physical volume "/dev/sda4" successfully created.

​ 创建了一格ext4类型主分区。设备路径是/dev/sda4。

d. 加入到LVM的ubuntu-vg组里面(从命令上翻译就是:把ubuntu-vg组扩展到/dev/sda4上)

1
2
3
4
5
$sudo vgextend ubuntu-vg /dev/sda4
Volume group "ubuntu-vg" successfully extended
$sudo lvm lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from <19.00 GiB (4863 extents) to 38.99 GiB (9982 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.

e. 最后扩展下文件系统,顺手再检查下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$sudo resize2fs -p /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 5
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 10221568 (4k) blocks long.
$df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 391M 2.0M 389M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 39G 14G 24G 36% /
tmpfs 2.0G 16K 2.0G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda2 976M 207M 703M 23% /boot
/dev/loop0 56M 56M 0 100% /snap/core18/2284
/dev/loop3 44M 44M 0 100% /snap/snapd/14978
/dev/loop1 56M 56M 0 100% /snap/core18/2344
/dev/loop2 68M 68M 0 100% /snap/lxd/22753
/dev/loop4 68M 68M 0 100% /snap/lxd/22526
/dev/loop5 62M 62M 0 100% /snap/core20/1376
/dev/loop6 44M 44M 0 100% /snap/snapd/15177
/dev/loop7 62M 62M 0 100% /snap/core20/1405
tmpfs 391M 0 391M 0% /run/user/1000

3. 对比

根文件系统从之前的:

1
/dev/mapper/ubuntu--vg-ubuntu--lv 19G 14G 4.6G 75% /

扩展为:

1
/dev/mapper/ubuntu--vg-ubuntu--lv 39G 14G 24G 36% /

enjoy~

必应每日美图的telegram新频道--bing_daily_image

image-20211213091420362

几年前一时兴起,做了个bing每日美图的爬虫。见:here

后来,仔细研究了下bing界面,把容易失效的html解析,改为bing的内部接口。见代码:https://github.com/Shazoo/VPSService_bingimg

近期又开始玩telegram,就顺手做了个频道,把积攒的一些url都post过去,做个存档。

so,有兴趣的可以follow这个频道了:

Bing 美日美图(CN) https://t.me/bing_daily_image

7zip for windows 图标美化版--2021-v21.04

是的,7zip恰好11月更新了。话说这个图标美化版我2017年更新后,直到今年8月份才想起来再来更新一版。不想不到年底人家就更新大版本了。早知道8月份就跳过去算了。

之前的16.04稳定版可以访问本站旧贴:7Zip-for-Windows图标美化版

之前的19.00稳定版可以访问本站旧贴:7Zip-for-Windows图标美化版(2021稳定版)

老规矩,下载链接:

继续阅读···

使用PowerShell获取已安装程序列表(最全方案)

image-20210623085618382

通过powershell获取已安装程序列表,网上方案杂七杂八的很多。这个是整合后的方案,比较全。

本脚本主要是获取应用程序列表而不是windows组件列表。

1
2
3
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Export-CSV $env:UserProfile\Desktop\$env:Username-software_list.csv -encoding utf8 -NoTypeInformation;
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Export-CSV $env:UserProfile\Desktop\$env:Username-software_list.csv -encoding utf8 -NoTypeInformation -Append;
Get-ItemProperty HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Export-CSV $env:UserProfile\Desktop\$env:Username-software_list.csv -encoding utf8 -NoTypeInformation -Append

执行后,当前桌面上就有一个 当前用户名-software_list.csv 文件。打开即可。

cusdis--静态网站的评论系统--hexo下应用

image-20210427111929583

看到这个帖子:最近做了一个开源的 Disqus 替代品

感觉不错。部署也简单。

就直接注册了下,用人家服务器(以后抽空再自建吧)搭建下评论系统。当然,咱这种扑街博客,评论别指望我能马上看到审批。

部署的时候坑发现Hexo版本太老了。内置变量和示例不一样。改成:

1
2
3
4
5
6
7
8
9
<div id="cusdis_thread"
data-host="https://cusdis.com"
data-app-id="xxxxxxxxxxxxxxxxxxxxxxxxx"
data-page-id="<%= post.permalink %>"
data-page-url="<%= post.permalink %>"
data-page-title="<%= post.title %>"
style="margin:12px;"
></div>
<script async defer src="https://cusdis.com/js/cusdis.es.js"></script>

也不是不能用……各位读者忍了吧。

Ubuntu 18.04/20.04 下 编译zxing-cpp for python(支持venv)

zxing-cpp简介

zxing是识别生成二维码的工具库,是一个java库。java的JRE开销其实不小,为了加快效率,zxing-cpp是不错的选择。

zxing-cpp,又有多个变种。这里选择zxing官方库推荐的“recent cpp port”库:

image-20210118171552311

准备工作

  • 工作目录创建

    1
    2
    3
    4
    5
    6
    7
    8
    mkdir /srv/zxing-env -p
    cd /srv/zxing-env
    python3 -m venv venv
    . venv/bin/activate # 之后所有的安装都在这个python虚拟环境中
    # 安装几个python的依赖
    # numpy (1.19.5)
    # Pillow (8.1.0)
    pip install numpy pillow

继续阅读···

wekan---丑陋但是强大的Trello替代品

image-20201211095419299

Trello , 强大的看板工具。精美,昂贵。

wekan,更加强大的看板工具。不过,就是有那么点丑……

看着Trello的各种Powerup!收费插件留了一年口水后,终于决定迁移到丑了点的wekan上。

安装步骤:

1
2
3
4
5
snap install wekan
snap set wekan root-url='http://192.168.x.x' # <--- 这个还很重要,wekan设计上有缺陷,不支持host:port模式。期内使用caddy做proxy_pass
snap set wekan port='3001' # <-- 用nginx做个proxy_pass

看惯了Trello的各种小美丽。wekan真是让人郁闷……

不过实在是便宜。而且功能够好。说2个我常用的:

  • 支持子任务
  • 支持自定义字段
  • 支持泳道

各种槽点也不少:

  • 丑。真丑。
  • 文档缺失。
  • 各种小问题,操作差了一丢丢顺畅。
  • 奇葩的模板设计方案。

看到免费的面子上,抽空部署到公网上去。

PS:为啥不用docker?因为snap简单。仅此而已……

PPS:作者很有趣,想要新功能吗?来,这是募资链接,支付500欧,我就马上开工。实在是我辈楷模。