Recent Posts
-
April 28, 2018
Windows平台的dd命令和linux磁盘的备份和还原
linux下面的dd命令可以直接读取原始磁盘扇区进行备份和还原,比如这样dd if=/dev/sdb of=sdb.mbr bs=512 count=2048dd if=/dev/sdb1 of=sdb1.img dd if=sdb1.img of=/dev/sdb1windows下面安装了git for windows之后,git bash自带的msys mingw里面其实是由dd命令的。 而且msys也对/dev/sda /dev/sdb1 这样的路径做了虚拟和map的。 就是说...
-
April 24, 2018
Grub2的磁盘内容备份和还原
GRUB 2 除了使用MBR的512个字节外,还在MBR后面到第一个分区开始的空隙保存core.img文件。所以第一个分区要从2048s扇区开始,保留“ 1 MiB (2048 blocks) ”的空隙给grub使用才行。 grub2-install 的工作就是 -> grub2-bios-setup -> 会往磁盘写入这boot.img和core.img 文件https://github.com/coreos/grub/blob/2.02-coreos/util/setu...
-
April 19, 2018
Linux里面判断当前系统是否运行在虚拟机机上面
grep hypervisor /proc/cpuinfogrep VirtualBox /sys/class/dmi/id/board_name
-
April 18, 2018
Iptables没有自动加载依赖的内核模块的问题
iptables 配置规则的时候,提示各种chain/target/match找不到,没有自己加载依赖的内核模块。看内核模块和so文件都是路径都是正常的。 用strace iptable xxxx 2>&1 grep ‘^lib|^etc’ 没法它会读取什么配置文件 查看了一下代码libxtables/xtables.c它应该是从 /proc/sys/kernel/modprobe 这里获取modprobe的命令的路径,然后用...
-
April 16, 2018
Linux获取用户和组信息的api
#include <stdio.h>#include <string.h>#include <crypt.h>#include <errno.h>#include <pwd.h>#include <grp.h>int main(void){ struct passwd *pw; struct group *gp; pw = getpwnam("nobody"); gp = getgrnam("nobody");...
-
April 16, 2018
Centos7.4报告failed to initialize nss library错误
Centos 7.4error: Failed to initialize NSS library=======================================https://access.redhat.com/solutions/3134931 https://bugzilla.redhat.com/show_bug.cgi?id=1477308 https://access.redhat.com/errata/RHEA-2017:0460nss-softokn.i6...
-
April 14, 2018
Linux内核模块的版本控制(module versioning)
参考内核文档 “6. Module Versioning”https://www.kernel.org/doc/Documentation/kbuild/modules.txt当编译内核时配置了CONFIG_MODVERSIONS选项, 会根据内在编译的MODPOST阶段根据内核源码为每个模块的导出函数 生存一个CRC校验。 全部的模块的函数的这个CRC版本信息在make modules后会保存在源码的根目录的Module.symvers 文件里面。 单独编译其他模块依赖其他模块的符号时...
-
March 22, 2018
生成linux的用户密码shadow文件的密码
cat /etc/shadow[root@centos7 ming]# perl -e 'print crypt("password123","\$6\$saltsalt\$") . "\n"'$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/[root@centos7 ming]# python -c 'import crypt; print ...
-
March 21, 2018
Overlayfs和squashfs测试
overlayfs 和squashfs tmpfs这些在内核源码的文档里面都有介绍的。创建squashfs文件系统yum install squashfs-toolsmksquashfs /some/dir dir.sqshmksquashfs initrd-busybox initrd-busybox.squashfsmount -t squashfs initrd-busybox.squashfs /mnt/overlay mount -t overlay overlay -olo...
-
February 22, 2018
用swig来实现php扩展模块extension
看了一下,使用swig实现php扩展模块比直接用c来写应简单很多。swig自动生成包装函数简化了很多工作。 下载swig回来自己编译一下 自己实现*.c 源码文件。 定义 swig的接口 *.i```text%module my_extension %pragma(php) phpinfo=” zend_printf("my PHP extension\n"); php_info_print_table_start(); php_info_p...