From 0d1056bd06417f8d303e5d7735788dcae3cff273 Mon Sep 17 00:00:00 2001 From: shzhxh Date: Sat, 5 Oct 2019 15:41:19 +0800 Subject: [PATCH] update some cmds --- OS/uefi.md | 2 ++ Software/Distr_archLinux.md | 16 +++++++++++++--- Software/Distr_manjaro.md | 21 +++++++++++++++++++++ Software/dd.md | 10 ++++++++-- Software/extlinux.md | 10 ++++++++++ Software/grep.md | 4 +++- Software/grub.md | 29 +++++++++++++++++++++++++++-- Software/文件管理/touch.md | 13 +++++++++++++ Software/设备管理/blkid.md | 24 +++++++++++++++++++++++- Software/设备管理/umount.md | 7 +++++++ 10 files changed, 127 insertions(+), 9 deletions(-) create mode 100644 Software/Distr_manjaro.md create mode 100644 Software/extlinux.md diff --git a/OS/uefi.md b/OS/uefi.md index d71c8cd..1362f8e 100644 --- a/OS/uefi.md +++ b/OS/uefi.md @@ -124,6 +124,8 @@ CONFIG_EFI_PARTITION=y # GPT配置选项,UEFI强制支持 ##### 从ISO创建启动U盘 +- 这种制作启动盘的方式很方便,只要把iso中的内容复制到U盘里即可。但有一点需要注意,U盘的卷标名和配置文件指定的卷标名要一致。 + ##### 从光盘去除UEFI启动支持 ##### 在32bitUEFI上启动64bit内核 diff --git a/Software/Distr_archLinux.md b/Software/Distr_archLinux.md index b23d9d7..54094b0 100644 --- a/Software/Distr_archLinux.md +++ b/Software/Distr_archLinux.md @@ -111,18 +111,28 @@ ##### 1. 制作启动盘 ```bash +# step1 : 把镜像里的内容复制到U盘里 mkdir -p /mnt/{iso,usb} mount -o loop archlinux-2017.04.01-x86_64.iso /mnt/iso -mount /dev/sdb /mnt/usb +mount /dev/sdb /mnt/usb # 注意:/dev/sdb必须是fat32分区 cp -a /mnt/iso/* /mnt/usb sync umount /mnt/iso -vim /mnt/usb/loader/entries/archiso-x86_64.conf # 对于UEFI引导,需要保证标签名一致 +# step2 : 对于UEFI引导,需要保证卷标或UUID一致。那么就有三种改法: +# 1 修改fat32分区的卷标 +cat loader/entries/archiso-x86_64.conf # 通过archisolabel找到巻标名 +# 2 修改配置文件里archisolabel对应的卷标名 +# 3 设置配置文件里的UUID,将配置文件里的archisolabel修改为archisodevice +blkid -s UUID /dev/sdb # 查看UUID + +# step3 : 重装syslinux cp /usr/lib/syslinux/modules/efi64/*.c32 /mnt/usb/arch/boot/syslinux/ + # 用本机的syslinux模块覆盖原有的*.c32,这是为了避免版本差异导致启动失败 extlinux --install /mnt/usb/arch/boot/syslinux umount /mnt/usb -# 将/dev/sdb分区设置为bootable + +# step4 : 将/dev/sdb分区设置为bootable ``` ##### 2. 安装 diff --git a/Software/Distr_manjaro.md b/Software/Distr_manjaro.md new file mode 100644 index 0000000..30fe8a9 --- /dev/null +++ b/Software/Distr_manjaro.md @@ -0,0 +1,21 @@ +#### 错误解决 + +##### error: unknown filesystem + +- 描述:在启动的时候grub直接进入恢复模式,提示"unknown filesystem"。或者在有的电脑上直接就识别不出来启动盘。 + +- 原因分析:问题应该是出在启动盘的grub上,因为电脑自带的grub没问题,而启动盘的grub报错。 + +- 解决方法:网上提到的方法是用ls命令找到manjaro所在的分区,然后用set命令进行设置。但我面临的问题是ls命令列出的分区均提示"unknown filesystem"。这种情况下该怎么办呢?有变通的方法,就是用硬盘上已有的grub来引导manjora。过程如下: + + ``` + ls # 应该可以看到(hd0,msdos1),这就是manjaro启动分区 + ls (hd0,msdos1)/ # 如果可以看到存在manjaro/目录,表明确实就是这个分区 + set root=hd0,msdos1 # 设置根设备 + set prefix=(hd0,msdos1)/boot/grub # 设置grub目录的绝对路径 + insmod normal # 调用normal模块 + normal # + ``` + + + diff --git a/Software/dd.md b/Software/dd.md index 0bdbf65..5d1ca03 100644 --- a/Software/dd.md +++ b/Software/dd.md @@ -12,7 +12,7 @@ dd option # 打印帮助信息或版本信息 #### 操作数 ``` -bs=BYTES # 一次读写BYTES字节 +bs=BYTES # 一次读写BYTES字节(默认512) cbs=BYTES # 一次转换bYTES字节 conv=CONVS # 用指定的参数转换文件(notrunc:不截短输出文件) count=N # 拷贝的块的数量(注:由ibs=指定一个块占多少个字节) @@ -24,7 +24,7 @@ of=FILE # 输出到FILE,而不是stdout oflag=FLAG seek=N # 从输出文件的N个块后再复制 skip=N # 从输入文件的N个块后再复制 -status=LEVEL +status=LEVEL # 输出到stderr的信息。none只显示错误信息,noxfer不显示最终的传输统计信息,progress显示传输统计信息。 ``` - N和BYTES可以带后缀: @@ -46,3 +46,9 @@ status=LEVEL --version # 输出版本信息 ``` +#### 示例 + +``` +sudo dd if=*.img of=/dev/* bs=4M status=progress # 创建U盘启动盘 +``` + diff --git a/Software/extlinux.md b/Software/extlinux.md new file mode 100644 index 0000000..c899ac7 --- /dev/null +++ b/Software/extlinux.md @@ -0,0 +1,10 @@ +``` +extlinux [options] # 安装syslinux bootloader +``` + +#### 选项 + +``` +-i, --install # 在当前引导扇区上安装 +``` + diff --git a/Software/grep.md b/Software/grep.md index ecf7c07..c527f97 100644 --- a/Software/grep.md +++ b/Software/grep.md @@ -70,7 +70,9 @@ rgrep # 等价于grep -r ##### 文件与目录选择 ``` --a, --text +-a, --text # 等价于 --binary-files=test,像处理文本文件一样处理二进制文件 +--binary-files= # +-I # 等价于 --binary-files=without-match, 不处理二进制文件 -r, --recursive # 递归搜索,对于符号链接只有在命令行里指定了才会追踪它 -R, --dereference-recursive # 递归搜索,会追踪所有的符号链接 ``` diff --git a/Software/grub.md b/Software/grub.md index ef2c50f..bbb853f 100644 --- a/Software/grub.md +++ b/Software/grub.md @@ -6,8 +6,6 @@ sudo grub-install --target=x86_64-efi --efi-directory=/mnt sudo update-grub ``` - - #### 简单配置 1. `grub-mkconfig`可以用来生成grub.cfg文件。但是功能有限。 @@ -22,6 +20,33 @@ sudo update-grub 3. 编辑/etc/grub.d文件夹中的文件或创建/boot/grub/custom.cfg,可以进行更灵活的配置。 4. 直接修改grub.cfg文件是不建议的。 +#### 命令 + +``` +boot # 启动已加载的操作系统。 +set [envvar=value] # 将环境变量envvar的值设置为value,如不给定参数则列出当前的环境变量 +unset envvar # 释放环境变量envvar +lsmod # 列出已加载的模块 +insmod # 调用指定的模块 +linux # 装载指定的内核文件,并传递内核启动参数。 +initrd # 只能紧跟在linux命令之后,为指定的内核传递init ramdisk路径。 +search # 通过文件(--file)、卷标(--label)、UUID(--fs-uuid)来搜索设备。 +ls [args] # 如不给定参数,则列出所有grub可见的设备;如给定的参数是一个分区,则显示该分区的信息;如给定的参数是一个绝对路径,则显示该路径下的所有文件。 +``` + +#### 内置变量 + +``` +cmdpath # core.img所在目录的绝对路径,该绝对路径要包含设备名称 +default # 默认的菜单项。可使用菜单的titile, id 或 数值顺序。 +timeout # 设置菜单等待时间。如为0则直接启动default指定的菜单,如为-1则永久等待手动选项。 +fallback # 如默认菜单项启动失败,则使用该变量指定的菜单项启动。 +prefix # grub目录的绝对路径,这样才可以从该目录下加载各文件和模块 +root # 指定根设备的名称 +``` + + + #### 使系统开机进入纯命令模式 1. 编辑/etc/default/grub diff --git a/Software/文件管理/touch.md b/Software/文件管理/touch.md index 21a3311..0e01f5d 100644 --- a/Software/文件管理/touch.md +++ b/Software/文件管理/touch.md @@ -2,3 +2,16 @@ touch [options] files # 把文件的访问时间和修改时间更新为当前时间 ``` +#### 选项 + +``` +-a # 只改变访问时间 +-c, --no-create # 不创建任何文件 +-d, --date= +-h, --no-dereference +-m +-r, --reference= +-t +--time= +``` + diff --git a/Software/设备管理/blkid.md b/Software/设备管理/blkid.md index 6216f56..ac0313a 100644 --- a/Software/设备管理/blkid.md +++ b/Software/设备管理/blkid.md @@ -1 +1,23 @@ -列出块设备的信息 \ No newline at end of file +列出块设备的信息 + +``` +blkid --label