首页
友情链接
Search
1
Limbo虚拟机教程(保姆级)
492 阅读
2
镜像库(超多镜像)
324 阅读
3
青龙面板JDPro:自动jd签到、任务 安装使用教程
232 阅读
4
在termux中安装linux
211 阅读
5
Qemu常用参数
187 阅读
termux
虚拟机
Linux
其他
typecho
辅助工具
教程
软件
青龙
登录
/
注册
Search
标签搜索
qemu
Batocera
grub
雪碧
累计撰写
51
篇文章
累计收到
246
条评论
首页
栏目
termux
虚拟机
Linux
其他
typecho
辅助工具
教程
软件
青龙
页面
友情链接
搜索到
14
篇与
的结果
2024-07-15
Docker加速国内下载的两个方法
不知为何,现在大多数的 docker hub 镜像加速站都停止服务,而官方站点又因某些原因访问不到或延迟很高。所以,来给你们提供两个解决方法。Docker 镜像加速有两个方法,一个是自建加速(需要一个海外服务器),还有一个是直接用现成的加速站1.博主自建的Docker加速隐藏内容,请前往内页查看详情使用方法点击上方链接就有说明2.自建Docker加速已经把nginx配置文件上传Github,有需要自取 nginx-proxy(docker)
2024年07月15日
3 阅读
0 评论
0 点赞
2024-07-15
GitHub国内访问加速的两个方法
Github 代理加速有两个方法,一个是自建加速(需要一个海外服务器),还有一个是直接用现成的加速站1.博主自建的GitHub加速网站链接:隐藏内容,请前往内页查看详情本站支持git clone,登录,raw,release 下载等操作2.自建Github加速已经把nginx配置文件上传Github,有需要自取 nginx-proxy(github)
2024年07月15日
4 阅读
0 评论
0 点赞
2024-02-16
1Panel安装/网站(博客)搭建详细教程以及踩坑指南
什么是1Panel?1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。1Panel 的功能和优势包括:快速建站:深度集成 Wordpress 和 Halo,域名绑定、SSL 证书配置等一键搞定;高效管理:通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等;安全可靠:基于容器来管理和部署应用,最小漏洞暴露面,提供防火墙和日志审计等功能;一键备份:支持一键备份和恢复,备份数据到各类云端存储,永不丢失;应用商店:精选各类高质量开源工具和应用软件,助力您轻松安装和升级。如何安装1Panel首先你需要一个拥有公网IP的服务器,如果没有想用自己电脑(家里云)搭建?可以使用Frp内网穿透SSH链接到你的服务器上,目前1Panel仅支持Linux系统根据你的系统版本,一键安装1Panel:查看系统版本可以使用:cat /etc/os-release{tabs}{tabs-pane label="RedHat/CentOS"} curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh{/tabs-pane}{tabs-pane label="Debian"} curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh{/tabs-pane}{tabs-pane label="Ubuntu"} curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh{/tabs-pane}{/tabs}在安装过程中可能会需要你填写 安装目录、端口号、设置账户密码等信息,账户密码信息按需填写,其他参数不明白可直接回车详情可查看官方文档: 1Panel官方文档当出现下图情况时,恭喜你你已经完成了面板的安装:根据上图登录信息登录服务器面板网站/博客搭建手动安装1.安装OpenResty登录面板-应用商店-OpenResty-安装-直接点确认即可PS:如果要安装WordPress,Typecho等程序,可以在应用商店内搜索,部分支持一键安装功能,这里就不过多赘述2.安装MySQL数据库应用商店-MySQL-安装-确认具体安装版本等情况请自己查询官网3.安装PHP运行环境网站-运行环境-创建运行环境-根据要求版本安装PHP版本4.创建网站网站-网站-创建网站,内有一键部署、运行环境、反向代理、静态网站四个选项,根据你的需求选择你需要的1.选择运行环境2.选择你安装的PHP版本3.填入你的域名,在这之前你需要把域名解析到你的服务器中 如何解析?5.创建数据库数据库-创建数据库-填入账号密码 你自己能记住就行,一会要用6.将网站源码上传到服务器中1.找到你网站的那一行-网站目录-index文件夹-上传你的网站源码2.访问你的网站,进入安装程序,根据你的信息写入账号密码3.数据库信息填写方法:1.数据库地址在 数据库-链接信息-容器连接处,注意不是localhost2.填入你刚刚创建的数据库信息4.点击继续安装,恭喜你已经安装成功了!一键部署在应用商店里搜索你要安装的程序,例如Typecho,然后单击安装,根据相关信息填入内容在网站-网站-创建网站选择一键部署,然后选择你刚刚安装的程序即可最后,有什么问题可在下方留言 看到后会回复!原文链接:https://blog.myxuebi.top/index.php/archives/95/
2024年02月16日
177 阅读
0 评论
1 点赞
2022-07-16
qemu保姆级教程,看完包会
Qemu命令行教程,看完包会Linux User001Qemu的官网在这里,各位同学可以在官网找到自己需要的版本和官方文档友情链接:作者自制的只适用于Debian和基于Debian操作系统的qemu脚本生成器下载和安装Linux $ git clone https://mirrors.bfsu.edu.cn/git/qemu.git $ cd qemu $ ./configure $ make && sudo make installWindows使用Windows的同学们可以直接下载32位和64位。MacOS#HomeBrew % brew install qemu #MacPorts % sudo port install qemu基本命令目前Qemu提供了以下架构:i386,x86_64,s390x,aarch64&aarch64w,ppc,ppc64,mips,mips64,riscv32,riscv64,arm&armw。但是笔者实力有限,只能写出i386和x86_64的较为完整的命令行,还请见谅首先,要使用Qemu,磁盘是必不可少的,qemu-img提供了新建和管理虚拟磁盘的方式这里以Windows为例,Linux或者MacOS同理,只需把.exe去掉即可> qemu-img.exe [commands] [options]创建磁盘::创建磁盘 > qemu-img.exe create [options] [files] [size] ::[options] : -q -> 静默输出 ::-f [format] -> 格式化&类型,支持的格式化有blkdebug blklogwrites blkverify bochs cloop ::compress copy-before-write copy-on-read dmg file ftp ftps host_device http https luks ::nbd null-aio null-co parallels preallocate qcow qcow2 qed quorum raw replication ::throttle vdi vhdx vmdk vpc vvfat ::-o [option] -> 向磁盘创建命令传入参数,不同的格式化会有不同的参数,各位可以使用 > qemu-img.exe -f [format] -o ? ::获得帮助示例> qemu-img.exe create -f raw virtdisk.img -o stze=40G ::创建一个40G的名字叫virtdisk.img,的硬盘,并且格式为raw ::或者也可以不用-o > qemu-img.exe create -f raw virtdisk.img 40G转换磁盘格式::转换磁盘格式 > qemu-img.exe convert -f [input_format] -O [output_format] 很好,你已经掌握了Qemu磁盘创建了,那么请听题:我要创建一个能在Hyper-V,VirtualBox,Qemu都通用的一个40GB的虚拟磁盘,名字就叫virtual,请问我要创建的文件全名和磁盘格式应该选什么?A、virtual.img,raw B、virtual.qcow2,qcow2 C、virtual.vhdx,vpc D、virtual.vdi,vpc答案:C。简单!正式使用我们知道,想要让一台像电脑一台破烂工作起来,我们必须准备以下几种硬件:CPU、主板、电源、内存、硬盘、基本输入输出系统(BIOS)、显卡和系统,但如果我们再进一步,打造的应该是一台电脑,那么我们还需要声卡、网卡、光驱、软驱(?)、显示器。所以,开始qemu之旅!内部设备CPU、主板(芯片组)、内存CPU:qemu功能强大,提供了数十种CPU和主板模拟,我们只需要用-cpu [model]选择一个型号,如果不知道自己编译或安装的qemu能支持什么型号,可以用-cpu ?查询。主板:主板同理,我们只需要-M [model]即可选择一个芯片组,-M ?也可以查询支持的芯片组型号内存:这个很简单,但是要注意的是,指定内存所用的命令是-m [number],小心别跟-M搞混了总结$ qemu-system-x86_64 -cpu ? #查询可用的CPU型号 $ qemu-system-x86_64 -cpu EPYC #选用一个EPYC的CPU $ qemu-system-x86_64 -M ? #查询可用的芯片组型号 $ qemu-system-x86_64 -M q35 #选用一个q35的芯片组 $ qemu-stsrem-x86_64 -m 1024 #为虚拟机提供1024MiB的内存存储设备存储设备:存储设备一共有三种:硬盘、软盘和光驱。软盘:-fda [file]示例:$ qemu-system-x86_64 -fda image.img #选择一个名为image.img的软盘镜像光盘:-cdrom [file]示例:$ qemu-system-x86_64 -cdrom winxp.iso #选择一个名为winxp.iso的光盘镜像硬盘:-hda [file]或-drive if=none,file=[file],id=[id],format=[format]示例:$ qemu-system-x86_64 -hda win7.qcow2 #选择一个名为win7.qcow2的虚拟磁盘拟外部设备在这里,拟外部设备有网卡、声卡、显卡、显示器和哑终端(串口传输)。声卡:很简单,我们只需要用-soundhw [model]即可启用声卡,同样,-soundhw ?可以查询支持的声卡型号,也可以直接用-enable-audio来直接启用声卡。显卡:同样简单,-vga [model]即可启用显卡,-vga help可以查询可用的显卡。网卡:相对声卡和显卡,网卡配置比较麻烦,所以敲黑板!用过libmo emulator的同学应该都知道,它的网卡有两种模式:user和tap,所以$ qemu-system-x86_64 -net [block]就是设置网卡模式的参数,同样-netdev help可以查询所支持的网卡模式,当然,在Linux系统,网卡模式是由网络回环块设备控制的,所以在Linux查询得到的结果应该是比Windows多的。下一个$ qemu-system-x86_64 -netdev [block],id=[id]这个很好理解,就是网卡名称.继续$ qemu-system-x86_64 -netdev user,id=[id] -net nic #注意,nic是必填项,指的是网卡类型为网络接口卡(Network Interface Card)很好$ qemu-system-x86_64 -netdev user,id=[id] -net nic,model=[model]没错,现在我们才能开始网卡型号的配置,同样-net nic,model=?可以查询支持的网卡型号。显示器通过显示器参数,我们可以设置虚拟机屏幕的映射,比如本地或局域网,一般不设置,它会默认显示在本机。-sdl可以调用libxsdl来显示一个是由画面的窗口。-vnc :[port]可以将画面共享到局域网中,我们甚至可以用手机的VNC Viewer来连接。示例$ qemu-system-x86_64 -vnc :1 #通过端口1将画面投放到局域网中哑终端我们都知道,Unix系统流行的时候(System V),人们访问Unix主机的资源都是通过大主机加几个串口线连到以前的大水牛电视机,通过它们输出的黑底白字(绿字?)命令行来控制Unix主机。但是,在qemu中,它模拟了两种哑终端,一种是连接到Linux虚拟机的真正的串口哑终端,另一种则是qemu用来管理虚拟机和可移动设备的控制台。熟悉qemu-arm平台的同学们都知道,启用哑终端的参数应该是-nographic。但是我们一旦加入这个参数之后,显示器功能将会被禁用,同时,不支持哑终端的虚拟机在命令行界面将会一片空白,什么也输入不了,甚至是Ctrl-C$ qemu-system-aarch64 -nographic Booting from ROM...^C $第二种:在我们使用没有前端管理工具的qemu时,可能都为如何更换光盘而烦恼。那么现在,我们就不必烦恼了$ qemu-system-x86_64 -monitor stdio #从stdio,即standard input output中获得命令行 (qemu) test No Command "test" Found Type "help" For Help当出现(qemu)的时候,就说明这是qemu控制台了同样,-monitor也可以投放到局域网中,协议是telnet$ qemu-system-x86_64 -monitor telnet,server,nowait,::[port]$ telnet 127.0.0.1 [port] (qemu)Linux内核直接挂载这个功能非常神奇,说实在的,到底是Sea BIOS还是qemu的功劳,作者也不知道。,反正能用就对了!试想一下,当我们刚刚编译好了一个内核,比如开机画面的调整或者内核模块的增减,想开机测试一把,该怎么做呢?正确(错误)示例$ sudo cp vmlinux /boot/vmlinux_new $ sudo cp initrd /boot/initrd_new $ sudo grub-mkconfig -o /boot/grub/grub.cfg $ sudo reboot不不不,大可不必这么麻烦还风险极大的方法-kernel和-initrd两兄弟:这两个就是用来挂载内核的参数,用法很简单,-kernel [kernel_file]和-initrd [initramfs_file]就可以在qemu上成功启动这个内核文件。我们还可以加一个-nographic使用它的哑终端功能。是的,我猜有的同学已经去试过了,无一例外,无论是显示器还是哑终端,我们都只有一个(initramfs)的提示符,根本没办法启动系统。先别急,我们看看下面的grub配置文件menuentry "Ubuntu with 5.13 kernel" --class ubuntu { insmod ntfs set root=(hd0,gpt1) echo Loading linux kernel... linux /boot/vmlinuz-5.13 ro quiet root={UUID} echo Loading initramfs... initrd /boot/initrd-5.13 boot }除去ntfs模块的加载及grub的根目录挂载和启动命令,我们不难发现,加载vmlinuz的一行有个root={UUID},这个参数表示告诉内核:“帮我转告给initramfs,它要的文件都在{UUID}这个磁盘里面,管够!”那我们该如何给qemu添加内核参数呢?-append [options]:这个参数就是qemu的黑科技:将参数传入内核,但是[options]必须要加双引号,所以上面的配置文件就能写成$ qemu-system-x86_64 -kernel vmlinuz-5.13 -initrd initrd-5.13 -append "ro quiet root={UUID}" -m 2048BIOS和启动BIOSBIOS(Basic Input Output System)全程叫基本输入输出系统,它用于掌管系统设备和它们的状态。又因为引导方式的不同,我们通常会把BIOS分成两种:Legacy和UeFI,这里不再多讲。OVMF是一个qemu下的UEFI BIOS项目,它配合TianoCore写出了许多能在qemu使用的UEFI BIOS固件,其中这里可以下载32位和64位的固件,我们要感谢他们!-bios [bios_file]:是的,很简单,不过我们也可以用-pflash [bios_file]来指定。按F2可打开TianoCore BIOS的设置启动非常简单,根本不用学。它根据以前的Windows计算机(想想我这里为什么说计算机而不是电脑)的基本配置来决定的这里我给出了一个表格,方便大家来写启动项参数,其中-boot [options]即可更换启动项[options]abcd动作软盘1软盘2硬盘光盘$ qemu-system-x86_64 -boot c -nographic Booting from Hand Disk...注意:在挂载了内核之后,-boot参数就会被禁用,此时的第一启动项永远都是内核END
2022年07月16日
8 阅读
0 评论
0 点赞
2022-07-16
grub入门教程-看完你就会写配置文件
Grub2入门教程LinuxUser001看完你就知道该怎么写grub.cfggrub全称GNURand Unified Bootloader友情链接:金步国的grub.cfg讲解(这个门槛太高,建议看完本文章再去)、GNU grub2官方文档、grub官方下载地址(源码安装包都有)以下的测试均在VMware+Arch Linux测试(别的不说,Arch Linux yyds!)请不要再自己的电脑实践,不然启动失败或者安装报错的来找我玩吧!好了,那么我们现在,开始游戏吧!安装和使用Windows系统通过上面的下载链接,我们已经下载了Windows的版本。那么该怎么用呢?首先,我们用管理员身份打开cmd,接着::Grub2 帮助 > grub-install.exe --help Usage: grub-install.exe [OPTION...] [OPTION] [INSTALL_DEVICE] Install GRUB on your drive. --compress=no|xz|gz|lzo compress GRUB files [optional] --disable-shim-lock disable shim_lock verifier --dtb=FILE embed a specific DTB -d, --directory=DIR use images and modules under DIR [default=C:\Users\liaol\Desktop\grub-2.06-for-windows/<platform>] --fonts=FONTS install FONTS [default=unicode] --install-modules=MODULES install only MODULES and their dependencies [default=all] -k, --pubkey=FILE embed FILE as public key for signature checking --locale-directory=DIR use translations under DIR [default=C:\Users\liaol\Desktop\grub-2.06-for-windows/locale] --locales=LOCALES install only LOCALES [default=all] --modules=MODULES pre-load specified modules MODULES --sbat=FILE SBAT metadata --themes=THEMES install THEMES [default=starfield] -v, --verbose print verbose messages. --allow-floppy make the drive also bootable as floppy (default for fdX devices). May break on some BIOSes. --boot-directory=DIR install GRUB images under the directory DIR/grub instead of the boot/grub directory --bootloader-id=ID the ID of bootloader. This option is only available on EFI and Macs. --core-compress=xz|none|auto choose the compression to use for core image --disk-module=MODULE disk module to use (biosdisk or native). This option is only available on BIOS target. --efi-directory=DIR use DIR as the EFI System Partition root. --force install even if problems are detected --force-file-id use identifier file even if UUID is available --label-bgcolor=COLOR use COLOR for label background --label-color=COLOR use COLOR for label --label-font=FILE use FILE as font for label --macppc-directory=DIR use DIR for PPC MAC install. --no-bootsector do not install bootsector --no-nvram don't update the `boot-device'/`Boot*' NVRAM variables. This option is only available on EFI and IEEE1275 targets. --no-rs-codes Do not apply any reed-solomon codes when embedding core.img. This option is only available on x86 BIOS targets. --product-version=STRING use STRING as product version --recheck delete device map if it already exists --removable the installation device is removable. This option is only available on EFI. -s, --skip-fs-probe do not probe for filesystems in DEVICE --target=TARGET install GRUB for TARGET platform [default=x86_64-efi]; available targets: arm-coreboot, arm-efi, arm-uboot, arm64-efi, i386-coreboot, i386-efi, i386-ieee1275, i386-multiboot, i386-pc, i386-qemu, i386-xen, i386-xen_pvh, ia64-efi, mips-arc, mips-qemu_mips, mipsel-arc, mipsel-loongson, mipsel-qemu_mips, powerpc-ieee1275, riscv32-efi, riscv64-efi, sparc64-ieee1275, x86_64-efi, x86_64-xen -?, --help give this help list -V, --version print program version --usage give a short usage message Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options. INSTALL_DEVICE must be system device filename. C:\grub-2.06-for-windows\grub-install.exe copies GRUB images into boot/grub. On some platforms, it may also install GRUB into the boot sector. Report bugs to <bug-grub@gnu.org>.是不是被这么巨量的输出吓到了?别慌,待我逐行为您解读--compress:这是对安装后的grub启动器压缩的功能,一般不建议使用。--disable-shim-lock:禁用填充码支持,此选项一般用于uefi,一般不用管。--dtb=FILE:Linux设备树文件,这涉及到内核层面,Windows玩不来,不用管。--directory=DIR:grub复制文件的源目录,如果不是故意的话一般都在运行目录,不用管。--font=FONT:使用一个字体,若无这个参数则默认unicode.pf2(grub2沿用许久的字体)--install-modules=MODULES:特指安装的模块,不管则为全部。(放心,占用空间不大)--pubkey=FILE:使用RSA密匙文件作为签名,一般不用管。--locale-directory=DIR和--locales=LOCALES:两个参数如果用的话建议配套使用,第一个是选择grub各国语言字符串的路径,而第二个就是选择语言,格式为zh_CN或en_US。不管则默认en_US。这个后面可以在cfg文件修改。--sbat=FILE:这个我也弄不清楚是什么,不过是跟uefi安全启动有关,涉及uefi操作系统机制,一般不用管。--themes=FILE:主题,不管默认为空。后面的cfg文件可以修改--verbose:安装时打印冗长的消息--allow-floppy:软盘支持,不过现在都不用了吧,不用管。--boot-directory=DIR:将grub释放至该目录的grub下,不指定则根目录。--bootloader-id=ID:启动器名字。一般不用管。--core-compress:这个参数跟第一条有点相似,不过第一条是全部压缩,这条是只压缩核心镜像。--disk-module=MODULE:用于grub访问磁盘的模块,如果是硬盘启动则不用管。(光盘启动则是iso9660,磁盘一般是biosdisk)--efi-firectory=DIR:指定EFI分区的根目录,文件系统只能是FAT32或vFAT--force:《无视风险继续安装》(?)--force-file-id:这个不知道是什么,最好不要管。--label-bgcolor、--label-color和--label-font=FILE:分别是标签(不知道是什么标签)背景颜色、字体颜色、字体样式。虚拟机环境的可以试试。--macppc-directory=DIR:令人啧啧称奇的功能:grub竟然支持在ppc的麦金塔机器安装grub,反正我们现在是Windows系统玩不来,不用管。--no-bootsector:不安装引导扇区,这个是主引导记录分区表的硬盘才能用的功能,适用于以前安装过grub的再次安装,第一次安装的请勿使用,一般不用管。--no-nvram:不添加条目至主板,uefi bios特色,一般及Legacy bios用户不用管。--no-rs-codes:禁止坏块启动功能,文档描述的是禁止一个能让grub在坏扇区的分区中启动(真的有那么神奇吗?)的功能。这么神奇的功能为什么还要专门弄个参数去禁止?不得而知,一般不用管。--product-version=STRING:自定义版本号,可以一试。--recheck:给grub添加自动检查设备映射的功能,简单说就是实时查看何时添加了新硬件,强烈建议添加这个参数。--removable:字面意思,即将目标设备当作可移动设备来安装grub,视情况而定。--skip-fs-probe:不探测磁盘中的文件系统,这个参数风险较大,不建议加。--target=TARGET:这个非常重要,是决定架构和固件类型的参数,但是不应该混乱使用,所以不用管(Legacy bios默认i386-pc,uefi bios默认x86_64-efi。可以自动识别)。--help、--version和--usage:分别是:显示帮助信息、显示版本号和显示简短的帮助信息。另外,后面它还有一句:INSTALL_DEVICE必须是系统设备文件名,这句话是什么意思呢?简单说,Windows系统内核曾经也做过像Linux系统一样,设备皆文件,不过Windows注册的设备文件比Linux的少多了。但是我们怎么看呢?wmic命令:这个命令功能十分强大,能够获取很多设备信息,不乏cpu,bios,磁盘等信息。而我们现在只需要获取磁盘信息即可点这里立刻看我的磁盘信息(但是只能在ie使用,可恶的chrome把ActiveX控件拦截了)。具有探索精神的玩家也可以自己在cmd运行命令wmic diskdrive list brief> wmic diskdrive list brief Caption DeviceID Model Partitions Size WDC PC SN730 SDBPNTY-512G-1036 \\.\PHYSICALDRIVE0 WDC PC SN730 SDBPNTY-512G-1036 4 512105932800简单梳理一下磁盘标题设备ID/号(简单说就是在Windows的文件路径)型号分区数总容量WDC PC SN730 SDBPNTY-512G-1036\\.\PHYSICALDRIVE0WDC PC SN730 SDBPNTY-512G-10364512105932800没错,grub所说的设备名正是设备ID!因此,完整的安装命令应该是(在我的uefi设备,而且要管理员权限)> grub-install.exe --boot-directory=C:\ --recheck --target=x86_64-efi --verbose --locales=zh_CN \\.\PhysicalDrive0 REM grub存放的根目录在C盘 REM 实时监测设备增减 REM uefi grub REM 详细输出 REM 中文 REM 物理磁盘0(也就是第一个磁盘)Linux系统在Linux系统安装则更为简单首先,各位Linux玩家,你们能走到这一步,应该已经知道如何更新源及安装软件包了吧。所以,我忽略grub的下载,只讲安装。首先,获取磁盘信息(这是作者的Arch Linux的运行结果)$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sr0 11:0 1 1024M 0 rom nvme0n1 259:0 0 60G 0 disk └-nvme0n1p1 259:1 0 512M 0 part /boot └-nvme0n1p2 259:2 0 200M 0 part /boot/EFI └-name0n1p3 259:3 0 59.3G 0 part /说实话,各位看到这里,说不定就已经知道该怎么做了,所以完整的安装命令应该是$ sudo grub-install --boot-directory=/boot --verbose --target=x86_64-efi --recheck --locales=zh_CN #/boot作为grub存放的位置 #详细输出 #uefi grub #实时检测硬件增减 #中文配置这大概就是最难的一个部分了,请大家耐心看完。我们已经安装好grub了,但是开机却只有一个grub>,怎么办呢?Linux首先我们输入ls,然后将ls精确到分区,最后再精确到文件## DISK grub> ls (hd0) (hs0,msdos1) (hd0,msdos2) (hd0,msdos3) (cd0) grub> ls (hd0,msdos1) 分区 hd0,msdos1:文件系统类型 ext* - 最近更改 2022-05-03 13:22:43 星期二,UUID 804d0075-ed9e-4fb6-99e6-3a3b82471604 - 分区始于 1024KiB - 总量 524288KiB grub> ls (hd0,msdos1)/ lost+found/ EFI/ vmlinuz-linux initrd-linux.img initrd-linux-fallback.img grub/ grub>第一个ls,显示所有存储设备及分区,其中(hdx,ptxx)是磁盘分区,hdx指的是磁盘设备号,ptxx是分区编号及分区表(就像主引导记录MBR显示msdosx一样,GUID分区表显示的是gptx),(cdx)则是光盘,如果可能,(fdx)或者(fpx)是软盘第二个ls,我们得到了该分区的基本信息,大小,文件系统,UUID什么的第三个ls,我们则得到了该分区里面的文件那么,现在我们开始启动这个系统吧!正如我在qemu命令行教程的内核启动讲的一样,grub也提供了必不可少的内核挂载功能,格式非常简单(不要盲目复制命令,不然就来找我玩吧!)## grub> linux (hdx,ptxx)/kernel argu grub> linux (hd0,msdos1)/vmlinuz-linux root=UUID=44ddf494-6462-4795-96be-e4c0321a05b5 quiet systemd.unit=graphical.target ## grub> initrd (hdx,ptxx)/initramfs grub> initrd (hd0,msdos1)/initrd-linux.img grub> boot ## 启动成功开始讲解linux命令:这个是用来加载linux内核文件的,第一个参数为linux内核文件路径,后面的参数均为传给内核的参数,比如我通过grub> ls查到了我的根分区是这么一串UUID,那么我就可以传进去给内核挂载(其中root参数非常重要,这是告诉内核根分区的位置)。initrd命令:加载初始化内存盘文件。切记切记切记:启动顺序必须先是内核再到内存盘boot命令:这个不用我多说了。Windows好,既然Linux已经搞定,那么就到Windows了。讲到Windows,我不得不提grub强大的的链式启动机制它竟然可以直接将启动权限转交到分区,在2.0版本之后,grub甚至支持将启动权限转交到EFI文件(因此,我们甚至可以用这个功能启动别的Linux系统!),这实在是太强了(可是正因为这个强大功能,我不得不将Legacy bios和uefi bios分开写,哎)。好话说完了,那我们开始吧(测试机器:VMware+Windows8.1(Windows系统的启动分区是保留分区))。Legacy还是一样,我们用ls查看各个分区的内容grub> ls (hd0) (hd0,msdos1) (hd0,msdos2) grub> ls (hd0,msdos1)/ $AttrDef $BadClus $Bitmap $Boot $Extend/ $LogFile $MFT $MFTMirr $Secure $UpCase $Volume Boot/ bootmgr BOOTNXT BOOTSECT.BAK 'System Volume Information/'好,这个分区一堆有美元符号的文件,肯定是保留分区了,那么它肯定是可以启动的了## 首先导入模块,不过有的grub在开始的时候已经自动导入了,因为这个工具太重要了 grub> insmod chain ## 接下来,将根目录导向这个分区,这个Linux玩家可参考 grub> set root=(hd0,msdos1) ## 然后,将grub的启动权限交给这个保留分区,让他启动 ## 因为NTFS的机制,启动代码是在第一个扇区开始,所以是+1 grub> chainloader +1 ## 最后,所有系统全部启动启动启动启动!还有这个!(DNA) grub> bootUEFI这个玩系统的玩家应该都有所了解,uefi的启动文件主要存放在ESP分区,而ESP分区文件系统是锁死了只能FAT32或者vFAT,所以比较好找。## 省略了找分区和导入模块的步骤 ## 首先,还是先将根目录导向ESP分区 grub> set root=(hd0,gpt1) ## 另外,uefi bios的特点:所有启动文件都必须放在\EFI\下,而Windows的启动文件是在\EFI\Microsoft\Boot\目录下(有两个 ##:bootmgr.efi和bootmgfw.efi,其中bootmgr是带驱动启动),所以 ## 接下来戏剧性的一幕发生了! grub> chainloader /EFI/Microsoft/Boot/bootmgr.efi ## 怎么回事,为什么这grub就像EFI Shell一样的啊? grub> boot好了,我们已经启动系统了,接下来开始用你喜欢的编辑器写配置文件吧基本语法命令menuentry:在grub启动器中显示一个条目,是结构语言,用法如下:(函数头也是有特别作用的哟)menuentry '系统名称' --class 标签1 --class 标签2(以此类推) --id '简介' { 命令 }(系统名称有且只有一个,而标签可以有多个,简介和标签可以不要)## 示例 menuentry 'Arch Linux' --class arch --class linux --class gnu { set root=(hd0,msdos1) linux /vmlinuz-linux root=UUID=UUID=44ddf494-6462-4795-96be-e4c0321a05b5 quiet systemd.unit=graphical.target initrd /initrd-linux.img boot }没错,我们将这些东西写进配置文件后,即可在每次启动前省去大量步骤!submenu:在grub启动器中显示一个父目录,也是结构语言,用法如下:(这回函数头少了,但是可以在父目录中塞menuentry当作子目录)submenu '父目录' --class 标签 { 命令 }## 示例 submenu 'Arch Linux的高级选项' --class arch { menuentry 'Arch Linux修复模式' --class arch { set root=(hd0,msdos1) linux /vmlinuz-linux root=UUID=UUID=44ddf494-6462-4795-96be-e4c0321a05b5 systemd.unit=emergency.target initrd /initrd-linux.img boot } menuentry 'Arch Linux开机无图形' --class arch { set root=(hd0,msdos1) linux /vmlinuz-linux root=UUID=UUID=44ddf494-6462-4795-96be-e4c0321a05b5 systemd.unit=multi-user.target initrd /initrd-linux.img boot } ## 以此类推 }function:定义一个函数,跟Linux Shell一样,那就不用说了。也是结构语言模块类命令insmod:导入模块,模块可以用ls $prefix/TARGET(TARGET为安装时选的--target=)查找,注意,导入时无需.mod后缀 - insmod MODULElsmod:查看目前已导入的模块及它们依赖的模块 - lsmodrmmod:卸载模块 - rmmod MODULE固件类命令reboot:重启计算机 - reboothalt:本来是睡眠的,但是GNU开发者觉得不行,改为关机 - haltfwsetup:uefi专用,进入固件设置 - fwsetupboot:在完成一系列初始化之后启动 - boot其他ls:列出文件、分区和磁盘 - ls DIR/DSK/PARTecho:打印信息和变量 - echo STRset:设置一个变量,有些变量是grub的配置,如果只写set则打印目前的变量 - set VAR=ARGloadfont:加载一个字体文件,但不是普通的字体文件(后面有讲) - loadfont pf2FILEterminal_input和terminal_output:设置输入输出的回环设备,这点在图形界面详细讲 - terminal_[input|ouput] --[append|remove] DEVICE变量变量,在grub的作用非常重要,是完美配置grub的利器。以下列出几个比较重要的变量变量名作用备注background背景图片依赖于图形界面及相应的图片模块cmdpath启动器所在磁盘-default默认条目前提是得有可显示的条目gfxmode图形界面的分辨率,格式为[width]x[height]x[color_bit](例 1920x1080x32)或auto必须提前导入相应的模块及通过grub的图形界面性能评估gfxpayload支持图形界面的模块是否常驻(通常为keep)必须提前导入相应的模块及通过grub的图形界面性能评估grub_cpu安装的grub指令集(i386或x86_64)无需手动设置grub_platform安装的grub平台类型(pc为legacy,efi为uefi)无需手动设置lang语言格式为zh_CN或en_USprefix安装grub的绝对路径无需手动设置rootgrub根目录将以root的路径为/,跟chroot相似theme主题值必须是主题文件夹内的theme.txt文件我们也可以自己设置其他命令,比如Linux内核路径,这样我们在写配置文件的时候可以更方便快捷图形界面激动人心的图形界面来啦!根据上面的变量及命令学习,在grub开启图形界面其实并不难,那么grub的图形界面性能评估是什么呢?feature_all_video_module变量:这个变量就是grub评估性能的结果,当我们得到它的值为y时,证明你的电脑/虚拟机支持它开图形界面,如果不是,那就考虑换一台吧。好,假设我们通过了它的性能评估,请按照我的一步一步来(有顺序,命令通用,放心复制)首先,导入相关模块## 这个all_video就是驱动大串烧 grub> insmod all_video ## 导入图形输出终端模块 grub> insmod gfxmenu ## 导入图形显示条目模块 grub> insmod gfxmenu ## 导入图形输出背景图片模块 grub> insmod gfxterm_background很简单,不是吗?接着,利用变量设置grub的图形界面模式## 图形界面分辨率及颜色位深度,第一个是自动,第二个是强制1024x768,32位色 grub> set gfxmode=auto grub> set gfxmode=1024x768x32 ## 设置图形界面模块模式,其中text是字符界面 grub> set gfxpayload=keep最后,有了图形界面却没有输出,算什么呢?所以我们还要将输出重定向到图形显示器中!grub> terminal_output --append gfxterm接着按一下ESC键,我们就会发现grub的界面发生了变化!恭喜,你开启了图形界面!当然,我们也可以将这一串命令写进配置文件(自取通用)function load_video{ insmod all_video insmod gfxmenu insmod gfxterm insmod gfxterm_background set gfxmode=auto set gfxpayload=keep terminal_output --append gfxterm }美化全局主题是的,grub不仅功能强大,它还很爱美!友情链接:Gnome-Look/grub主题 官网、GNU Grub官方示例主题starfield星空。好了,我们已经下载好主题包了,它的结构是一个文件夹,里面有很多图标及一个theme.txt。我们把它移进grub安装目录里面的themes目录下,就完成了主题的安装。那我们怎么使用呢?很简单,我们在配置文件里面加一行set theme=$prefix/themes/主题/theme.txt重启,看到漂亮的主题,是不是特别简单呢?背景图片set background=/图片路径如果提示不支持的位图格式,则insmod相应的模块即可,比如jpg后缀的图片我们则insmod jpg,就这么简单。字体⚠ Windows用户!这不是你该看的东西,请快点转移到Linux!这里,我们将会了解grub的字体压缩及其配置我们都知道,一般字体文件的后缀是ttf、ttc等的格式,但是grub却不是如此,它用的是经过压缩的.pf2文件!那么该如何转化呢?grub-mkfont命令::该命令用于字体的转换,支持ttf、ttc等源文件转化(此程序只有Linux才有,Windows是没有的。所以Windows用户也可以套用人家弄出来的.pf2文件)基本用法:## 摘自Linux命令 $ grub-mkfont --help 用法: grub-mkfont [OPTION...] [选项] 字体文件 将通用字体文件格式转换为 PF2 格式 -a, --force-autohint 强制 autohint -b, --bold 转换为粗体 -c, --asce=NUM set font ascent -d, --desc=NUM set font descent -i, --index=NUM select face index -n, --name=NAME 设置字体族名称 --no-bitmap ignore bitmap strikes when loading --no-hinting 金庸 hinting -o, --output=文件 将输出保存到指定文件 [必需] -r, --range=FROM-TO[,FROM-TO] 设置字体范围 -s, --size=大小 设置字体大小 -v, --verbose 显示冗长信息。 -?, --help give this help list --usage give a short usage message -V, --version print program version Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options. Report bugs to <bug-grub@gnu.org>.所以,我们只需要拿出一些重要的参数$ grub-mkfont [字体源文件].ttf -o [字体输出文件].pf2接着,将字体文件移入grub安装目录下,然后在配置文件里面加上一行loadfont $prefix/[字体文件].pf2好了,现在你已经完成了grub的初步学习······等等,你的配置文件是不是还叫“无标题”?对,我差点忘了,只需要将配置文件命名为grub.cfg,然后移到grub的安装目录下即可(其他位置grub直接罢工,然后你又要回收开头的grub>)好了,现在你已经完成了grub的初步学习(真)参考文献:GNU Grub Manual 2.06、UEFI shim安全启动机制、Arch Wiki GRUB中文`
2022年07月16日
5 阅读
0 评论
0 点赞
1
2
3