duangsuse::Echo
583 subscribers
4.12K photos
118 videos
579 files
6.13K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#sysadmin #Linux Arch 草 10G 内存是
#Linux #sysadmin 要帮同学的电脑安 OpenSUSE ,可是那个 BIOS 貌似把 USB 识别错了🌚

不过还好,不知为什么既有一个 OEM7GRUB ,但版本非常低, linux 命令都没有,能读取 D: 盘,于是把 .iso/boot 复制了份, kernel+initrd 下,传 grub.cfg 里的 root=live:CDLABEL=openSUSE_Leap_15.2_KDE_Live 后 boot 就好了
duangsuse::Echo
#Linux #sysadmin 要帮同学的电脑安 OpenSUSE ,可是那个 BIOS 貌似把 USB 识别错了🌚 不过还好,不知为什么既有一个 OEM7GRUB ,但版本非常低, linux 命令都没有,能读取 D: 盘,于是把 .iso/boot 复制了份, kernel+initrd 下,传 grub.cfg 里的 root=live:CDLABEL=openSUSE_Leap_15.2_KDE_Live 后 boot 就好了
#windows #sysadmin bcdedit /set {default} recoveryenabled No
Win10 在 ntfsresize 缩放了 C: mbr 分区后,正常缓慢开启一次,爆炸了,貌似和空间不够有关(第一次给太少了)🌝

现在正无法正常重启中, WinRE 可以说没有用,只会说什么 srt.log ,我看了是空的一个字没有,最后还是 chkdsk/f C: , sfc/scannow, bootrec,bcdboot, dism,diskpart 这些有点用,可惜没法修复问题,开 ntbtlog 也找不到文件,我还以为 RE 里 sys32/wininit.exe 能正常启动,其实只能是 windir/winload.exe ...

关掉 winRE 以后才发现是某个系统驱动损坏了…… 敢问你给个错误码有什么用啊🌚 解决方案和万能重装,用户一个一个试?
duangsuse::Echo
发现是 sys32/drivers 的一些 .sys 文件坏了🌚 估计要找人复制 话说 SUSE 安装 DVD 的 linuxrc 也真是方便,只需要指定 linux initrd 然后连使用 iso: 安装 source 都不支持,手动挂载点也不行(非得选 hard drive 还是 cdrom 还是 net 然后自己挂载检查) 害得我不得不把 iso 里的 repodata media.1 x86_64 noarch *.asc 甚至 boot 给复制了一份到硬盘才行…… 不过 SUSE 也真是可以啊,…
#learn #linux #sysadmin #bash 留的一点笔记
命令行基础: Tab 补齐命令/参数, Ctrl+C 或 Ctrl+| 退出程序,Ctrl+D 结束输入(如果提示了) 或 exit ,上下键重复 history 输入历史 Ctrl+A/E 跳到头尾,Alt+B/F 跳前/后一词 ls -lh a/ 列出目录 a,默认当前目录 l=日期,大小、h=GB,MB格式 cd 修改当前目录, cd - 返回上次 cat a 显示 a 内容,后加 |less 或 |more 可带分页;nano 或 vi,vim 可编辑文件 cp a b c.txt d/ 复制文件 -r 带夹 mv a b d/ 移动文件,若 d 不是目录 代表重命名 rm 删除文件 -r 带(文件)夹 man find 查询 find 指令文档 prog -h 或 --help 是大部分程序查询用法的参数 不要随意执行只有 / 参数的 rm 或 dd 指令,不能随意执行意义不明或不符的 sudo 指令 ps -aux 输出进程信息, kill -9 强行杀死,killall firefox 退出此浏览器及其子进程 Bash 语法: if [ a == "" ]; then echo 不可能; fi for fp in a b c; do echo $fp; done 对 a b c 变量(文件名等)批量执行指令 echo ls|xargs 可以把 echo 程序的前部参数 构造成 a b c 式文件列表 === Ctrl+Win+左右上下 = 切换虚拟桌面 拖拽切换器(开始按钮右侧),移动窗口到其他桌面 屏幕左上角/顶部=窗口/虚拟桌面列表 Win+左右上下=快速平铺窗口 右键配置桌面以更换壁纸,Sharder 壁纸很炫但不支持定时更换 右侧剪贴板状面板记录着 Ctrl+C 的历史 Ctrl+T=打开终端 Alt+空格键=输入四则算式 Ctrl+Alt+Escape=杀死无响应窗口 命令行 irb,python,node,lua,expr 1+1,perl -E 'print 1+1' 都是计算器交互台或语法

命令行基础: Tab 补齐命令/参数, Ctrl+C 或 Ctrl+| 退出程序,Ctrl+D 结束输入(如果提示了) 或 exit ,上下键重复 history 输入历史 Ctrl+A/E 跳到头尾,Alt+B/F 跳前/后一词 ls -lh a/ 列出目录 a,默认当前目录 l=日期,大小、h=GB,MB格式 cd 修改当前目录, cd - 返回上次 cat a 显示 a 内容,后加 |less 或 |more 可带分页;nano 或 vi,vim 可编辑文件 cp a b c.txt d/ 复制文件 -r 带夹 mv a b d/ 移动文件,若 d 不是目录 代表重命名 rm 删除文件 -r 带(文件)夹 man find 查询 find 指令文档 prog -h 或 --help 是大部分程序查询用法的参数 不要随意执行只有 / 参数的 rm 或 dd 指令,不能随意执行意义不明或不符的 sudo 指令 ps -aux 输出进程信息, kill -9 强行杀死,killall firefox 退出此浏览器及其子进程 Bash 语法: if [ a == "" ]; then echo 不可能; fi for fp in a b c; do echo $fp; done 对 a b c 变量(文件名等)批量执行指令 echo ls|xargs 可以把 echo 程序的前部参数 构造成 a b c 式文件列表 === Ctrl+Win+左右上下 = 切换虚拟桌面 拖拽切换器(开始按钮右侧),移动窗口到其他桌面 屏幕左上角/顶部=窗口/虚拟桌面列表 Win+左右上下=快速平铺窗口 右键配置桌面以更换壁纸,Sharder 壁纸很炫但不支持定时更换 右侧剪贴板状面板记录着 Ctrl+C 的历史 Ctrl+T=打开终端 Alt+空格键=输入四则算式 Ctrl+Alt+Escape=杀死无响应窗口 命令行 irb,python,node,lua,expr 1+1,perl -E 'print 1+1' 都是计算器交互台或语法

想帮我整理格式请 http://pastebin.ubuntu.com/p/6Jq8b5tz5N/ 文本发我,此剪贴板一天后过期😓
#Linux #sysadmin unstable 化你的 debain-based 发行版!
#net #sysadmin 🧐原版socks吗
#sysadmin #bilibili 🧐B站/弹幕使用技巧

@AI视频小助理 @机器工具人 [doge]​听稿总结、听歌识曲 工具

H5客户端的换肤在设置按钮的右上角
笔记可以包含 00:00 等时轴和截图
除了“空降 跳转 跳伞” mm:ss 弹幕,也有些会显示特效的短语,up可以发送投票等BAS弹幕

在最近支持跳过片头前,用户普遍用“从左到右”轻滑满屏,基本是片头长度。轻捏放大画布

使用顶底弹幕,都会被视频内前景物体遮挡;无保护的旧弹幕会被挤掉
,弹幕设置可以调整智能过滤
弹幕需要发送后撤回来测试是否被敏感词或风控
#sysadmin Arch #linux 一次滚挂历程(差一点)
*原因:很久没滚,GNOME mutter wm莫名有了键盘焦点的bug。 未使用 -Syu 以至于为一些旧的包 --ignore icu 的升级,谁知xml依赖它呢?另外还 --overwrite'jupyterlab/*'
*差点滚挂: 不能 systemctl restart display-manager ; pacman -S 启动不了!而且我的tty1开的是支持中文的 cage kitty (虽然不会bootloop 🙉 并非btrfs,libc 的那种死亡panic)

众所周知,所有非 gcc -static 软件,都是靠 ld.so 查/usr/lib C语言全局表,其重要好比glibc之于bash或gtk之于Ubuntu
ld虽然有 LD_PRELOAD 同名替换hack,却无法以 LD_BIND_NOT 来避免不必要的.so 文件/版本缺失,导致「极其重要的pacman完全无法运行,即便没用到那 libxml」
ldd 也是DFS算法连tree可视化都没有的主 😅 LD_DEBUG=all 性能贼慢,还不如许多黑客软件懂UIUX

😅看起来,pacman 莫名其妙地dlopen(xml)了,其实都怪 archive.so 错误地未使用 gcc -rlazy 来惰性链接xml (RTLD_NOW)
readelf -d `whereis pacman` #PLT 节
标记 类型 名称/值
0x0000000000000001 (NEEDED) 共享库:[libalpm.so.14]
0x0000000000000001 (NEEDED) 共享库:[libarchive.so.13]
0x0000000000000001 (NEEDED) 共享库:[libc.so.6]


首先当然是祈祷icuuc.so.75 的函数表没差异, cp .old .new 但失败
那就只能手动下载、补充安装icu 。gio mount -rl 查不到MTP安卓,U盘不知为何lsblk不出,只好用http上传
? import uploadserver 
ip a|grep 192.168.


然后用tar -xf *.zst; 手动cp缺失的.so文件们,直到能启动 pacman -U

教训: libc toolchain 真是傻逼,pacman它根本没用XML解析器,XML也完全没必要强制 International Components for Unicode library !
然后升级一定要-Syu
然后CPython的httpd,xml API真是神

#learn ELF
https://lecoding.com/post/2016/linux-dynamic-lib-lazy-load/
https://yxj-books.readthedocs.io/zh-cn/latest/programming/ProgrammerSelfCultivation/ch07.html#plt
https://www.coder.work/article/8000423
//cc  a.c  -zlazyload -ldl -lcaca
#include <stdio.h>
#include <dlfcn.h>

int main() {
printf("Lazy loading demo program.\n");
void *m = dlopen("libcaca.so", RTLD_LAZY);
dlclose(m);
}
glibc 支持lazybind,无法lazy mmap 。你可以用 patchelf --remove-needed
https://github.com/NixOS/patchelf/blob/7c2f768bf9601268a4e71c2ebe91e2011918a70f/src/patchelf.cc#L1719 😅明明可以暴露成json编解码的
duangsuse::Echo
#sysadmin Arch #linux 一次滚挂历程(差一点) *原因:很久没滚,GNOME mutter wm莫名有了键盘焦点的bug。 未使用 -Syu 以至于为一些旧的包 --ignore icu 的升级,谁知xml依赖它呢?另外还 --overwrite'jupyterlab/*' *差点滚挂: 不能 systemctl restart display-manager ; pacman -S 启动不了!而且我的tty1开的是支持中文的 cage kitty (虽然不会bootloop 🙉 并非btrfs…
#sysadmin Arch #linux 一次莫名其妙的boot卡第一屏
ps. #tool #github https://chromewebstore.google.com/detail/webdevauthn 比那些付费垃圾TOTP(sha1 6b) 厉害多了 😅

经过PE验证, $esp/boot/initramfs-linux.img #约40M 莫名其妙成了空文件,必须重新 https://wiki.archlinuxcn.org/wiki/Mkinitcpio -g initr.img
没法直接从其他发行版iso照搬

一看Arch liveCD 都1G多了 😅就选择Alpine,但手里的U盘不方便直接dd,需要 isolinux 启动(应该使用 https://www.ventoy.net/cn/index.html 的)

众所周知, GRUB 采用 1vm+2init 执行Linux,第一次init在内存盘,第二次明明也可以让grub传指针进来(squashfs,iso9660) 却莫名其妙要指定/proc/cmdline 去 find .iso 以便 mount /media/cdrom
Ubuntu 的是 boot=casper iso-scan/filename=/a.iso 但Alpine不吃这一套

因此最终你要对.iso 敲两次代码……

#grub.cfg
menuentry "find iso" {
find --set=iso a.iso
}
menuentry "boot $iso" {
loopback l0 $iso
linux (l0)/boot/vm*
initrd (l0)/boot/initr*
}

然后在毫无文档的init fallback 上挂载

mount /dev/sda2 /tmp #反正不能直接从GRUB里传/dev号,不通用,也不能直接 find -d1 /media ,需要逐个mount..
mount -t iso9660 -o loop /tmp/a.iso /media/cdrom #不能自动探测loop0/cdfs,全默认fat
fdisk -l #输出是正常的,然而mount不是!


然后OpenRC依然会挂,而且连bash都没有(不能用 arch-chroot https://wiki.archlinuxcn.org/wiki/Chroot😅😅

for p in sys dev; do mount --bind /$p /mnt/$p; done
chroot /mnt /bin/bash <<OK
mkinitcpio -g a.img
OK


替换一下 $esp/init*,这样就不卡第一屏
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.lookingGlass.toggle();'

gnome-control-center 也坏了,草,是我的 nm-iwd 导致的
靠这些垃圾发行版还不如USB cdc上网

最后说个冷知识: /dev 树并不是在内核里定义好的
而是由init脚本(udev)创建,在切到第二个init(systemd) 后,看起来就像内核搞的一样 😄
devtmpfs 只是 -o size=固定的 tmpfs
/dev/null 这些统称为内存设备: https://github.com/torvalds/linux/blob/master/drivers/char/mem.c#L696
完整列表见 device.rst

Linux内核的启动参数,主要是 root=/dev/ram0 ,通过pivot_root的新方式都是在可脚本环境下挂载/的
initrd由多个 .cpio.gz 构成,真希望能把.iso 与挂载脚本也加进内存去啊😅😅 为啥非要从u盘
https://run.tournament.org.il/extracting-multi-layered-initramfs/
https://github.com/owenson/tiny-linux-bootloader/blob/master/bsect.asm#L112
http://boot.ipxe.org/ 网络启动

#learn
https://wiki.archlinuxcn.org/wiki/Arch_的启动流程#Getty https://wiki.archlinuxcn.org/wiki/块设备持久化命名
https://mickyching.github.io/kernel/linux-vfs-introduction.html
https://kernel-tour.org/fs/devtmpfs.html
https://github.com/0voice/linux_kernel_wiki/blob/main/文章/设备驱动/Linux操作系统学习之字符设备.md#三-字符设备基本构成

魔数解析 https://ty-chen.github.io/linux-kernel-0x400000/
https://uniondong.github.io/docs/linux/linux_driver_develop_basic/一文秒懂linux字符设备驱动/#21-cdev
https://github.com/torvalds/linux/blob/master/fs/binfmt_script.c #! 的由来
手写fs https://linux-kernel-labs.github.io/refs/heads/master/labs/device_drivers.html

ps. #rust 😅 macro 是教你这么玩的么,简直是对元编程的侮辱 declare_err!(EPERM, "Operation not permitted.");..
一个KV表写成这B样,唉 https://github.com/torvalds/linux/blob/master/net/9p/error.c 都不好意思了
#dontknow #android #sysadmin

在信号不好、网速慢时,如何关闭5G😋

- 开发者模式:频繁点击 设置/我的设备/OS版本
- 搜索 「选择菜单」/menu ,选择sim卡图标项,启用
- 在双卡设置页点击手机号右箭头,网络类型,选择LTE

ps. 5G的好处是网速快、不滞后、容积率高,缺点是覆盖小、成本极高、用的人很挤、缺乏配套应用。
#有意思的项目 #sysadmin
anylinuxfs: macOS 下挂载任意 Linux 支持的 FS 的工具,基于 libkrun 提供的 microVM 和 NFS 协议,完全用户态实现,不安装内核扩展、不降低系统安全性
https://tttttt.me/RachelBlahblah/8561?comment=8287
https://github.com/nohajc/anylinuxfs

实际上是起了一个 Alpine Linux,和QEMU-nbd差不多
1