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
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 以后才发现是某个系统驱动损坏了…… 敢问你给个错误码有什么用啊🌚 解决方案和万能重装,用户一个一个试?
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
命令行基础: 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
想帮我整理格式请 http://pastebin.ubuntu.com/p/6Jq8b5tz5N/ 文本发我,此剪贴板一天后过期😓
命令行基础: 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 #net Perl #dalao socket #dev #sysadmin SOCKS5协议转tun,iptables https://catonmat.net/linux-socks5-proxy
https://tttttt.me/im_RORIRI/4152 #web Kit #apple
pacuar -S proxychains ;nano /etc/proxychains.conf
后可用DLL注入的方式[单应用 系统代理]https://tttttt.me/im_RORIRI/4152 #web Kit #apple
catonmat.net
Turn any Linux computer into a SOCKS5 proxy with one command
I thought I'd write a shorter article this time. It goes hand in hand with my upcoming article series on 100% technical guide to anonymity and it's much easier to write larger articles by splitting them into smaller pieces. I can then just edit them together…
#linux #sysadmin ReactOS 做了个能给 NT 用的 BtrFS 驱动,一个把 NTFS 转换成 BtrFS 的工具,和一个能让 Windows 10 从 BtrFS 启动的引导器
https://gist.github.com/ItsLynix/20834efa61ccfc5bcbfd1d8a1bb0fd71
https://gist.github.com/ItsLynix/20834efa61ccfc5bcbfd1d8a1bb0fd71
Gist
Notes and guides on how to install arch and windows on the same partition.
Notes and guides on how to install arch and windows on the same partition. - [Guide] Dual-booting Windows 10 and Arch Linux sharing a root partition.md
#sysadmin Arch #linux 一次滚挂历程(差一点)
*原因:很久没滚,GNOME mutter wm莫名有了键盘焦点的bug。 未使用 -Syu 以至于为一些旧的包
*差点滚挂: 不能
众所周知,所有非 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)
首先当然是祈祷icuuc.so.75 的函数表没差异, cp .old .new 但失败
那就只能手动下载、补充安装icu 。
然后用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
https://github.com/NixOS/patchelf/blob/7c2f768bf9601268a4e71c2ebe91e2011918a70f/src/patchelf.cc#L1719 😅明明可以暴露成json编解码的
*原因:很久没滚,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 -lcacaglibc 支持lazybind,无法lazy mmap 。你可以用 patchelf --remove-needed
#include <stdio.h>
#include <dlfcn.h>
int main() {
printf("Lazy loading demo program.\n");
void *m = dlopen("libcaca.so", RTLD_LAZY);
dlclose(m);
}
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验证,
没法直接从其他发行版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 以便
Ubuntu 的是
因此最终你要对.iso 敲两次代码……
然后在毫无文档的init fallback 上挂载
然后OpenRC依然会挂,而且连bash都没有(不能用 arch-chroot https://wiki.archlinuxcn.org/wiki/Chroot ) 😅😅
替换一下 $esp/init*,这样就不卡第一屏
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 是教你这么玩的么,简直是对元编程的侮辱
一个KV表写成这B样,唉 https://github.com/torvalds/linux/blob/master/net/9p/error.c 都不好意思了
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 都不好意思了
Google
Chrome Web Store
Add new features to your browser and personalize your browsing experience.
#有意思的项目 #sysadmin
anylinuxfs: macOS 下挂载任意 Linux 支持的 FS 的工具,基于 libkrun 提供的 microVM 和 NFS 协议,完全用户态实现,不安装内核扩展、不降低系统安全性
https://tttttt.me/RachelBlahblah/8561?comment=8287
https://github.com/nohajc/anylinuxfs
实际上是起了一个 Alpine Linux,和QEMU-nbd差不多
anylinuxfs: macOS 下挂载任意 Linux 支持的 FS 的工具,基于 libkrun 提供的 microVM 和 NFS 协议,完全用户态实现,不安装内核扩展、不降低系统安全性
https://tttttt.me/RachelBlahblah/8561?comment=8287
https://github.com/nohajc/anylinuxfs
实际上是起了一个 Alpine Linux,和QEMU-nbd差不多
Telegram
DBin_K ∣ 闷声摸大鱼🐳 in Rachel's Comments
那我是不是也能在Windows做类似的操作,用wsl访问ext4
❤1