内容一:判断 Linux 是 BIOS 还是 EFI 的方法
# ls -ld /sys/firmware/efi
(补充:如果 /sys/firmware/efi 目录存在,则代表系统是 EFI,否则系统是 BIOS)
内容二:判断 Linux 是 BIOS 还是 EFI 的脚本
# [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
# ls -ld /sys/firmware/efi
(补充:如果 /sys/firmware/efi 目录存在,则代表系统是 EFI,否则系统是 BIOS)
# [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
在创建 KVM 虚拟机之前要先安装 KVM 并创建 KVM 虚拟网络
在 openSUSE 官网上下载安装系统所需要的镜像:
https://software.opensuse.org/distributions/leap
主要用于批量克隆出新的 KVM 机器,节约创建新虚拟机的时间
(只在真机上执行以下步骤)
# qemu-img create -f qcow2 /var/lib/libvirt/images/template_opensuse_leap_15_10g.qcow2 10G
(只在真机上执行以下步骤)
# ls /var/lib/libvirt/images/ | grep template_opensuse_leap_15_10g.qcow2
(只在真机上执行以下步骤)
# virt-manager
(只在真机上执行以下步骤)
(步骤略)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(注意:虚拟网络必须提前创建好)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
3.2.21 在安装系统的过程中需要注意的内容总结
1) 一定要使用刚刚创建的 template_opensuse_leap_15_10g.qcow2 作为安装虚拟机的硬件文件
2) 虚拟机网络 “0” 要提前创建好
3) 只分一个分区,只设置一个挂载点挂载到根,使用标准硬盘,硬盘格式是 XFS
4) 选择最小化安装系统
步骤四:进入新创建虚拟机修改配置
(只在虚拟机上执行以下步骤)
4.1 添加 Console 配置
4.1.1 修改 grub 内核配置文件
# vi /etc/default/grub
将全部内容修改如下:
# If you change this file, run 'grub2-mkconfig -o /boot/grub2/grub.cfg' afterwards to update
# /boot/grub2/grub.cfg.
# Uncomment to set your own custom distributor. If you leave it unset or empty, the default
# policy is to determine the value from /etc/os-release
GRUB_DISTRIBUTOR=
GRUB_DEFAULT=saved
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=8
GRUB_CMDLINE_LINUX_DEFAULT="splash=silent mitigations=auto quiet"
GRUB_SERIAL_COMMAND="serial --unit=1 --speed=115200"
GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=tty0 console=ttyS0,115200n8"
GRUB_DISABLE_LINUX_UUID="true"
GRUB_ENABLE_LINUX_LABEL="true"
GRUB_DISABLE_RECOVERY="true"
# Uncomment to automatically save last booted menu entry in GRUB2 environment
# variable `saved_entry'
# GRUB_SAVEDEFAULT="true"
#Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
# GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
#Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL="gfxterm"
# The resolution used on graphical terminal
#note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE="auto"
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
# GRUB_DISABLE_LINUX_UUID=true
#Uncomment to disable generation of recovery mode menu entries
# GRUB_DISABLE_RECOVERY="true"
#Uncomment to get a beep at grub start
# GRUB_INIT_TUNE="480 440 1"
GRUB_BACKGROUND=
GRUB_THEME=/boot/grub2/themes/openSUSE/theme.txt
SUSE_BTRFS_SNAPSHOT_BOOTING="true"
GRUB_DISABLE_OS_PROBER="false"
GRUB_ENABLE_CRYPTODISK="n"
GRUB_CMDLINE_XEN_DEFAULT="vga=gfx-1024x768x16"
4.1.2 使修改的 grub 内核配置生效
# grub2-mkconfig -o grub
4.2 将系统自动挂载的硬盘从使用 uuid 换成硬件路径
4.2.1 查看根分区的 UUID
# blkid
/dev/vda1: UUID="53ee2f87-89b8-4cd7-a4dc-0957d28f4831" TYPE="xfs" PARTUUID="3d8377ef-01"
(补充:这里的 UUID 是: 53ee2f87-89b8-4cd7-a4dc-0957d28f4831)
4.2.2 在自动挂载文件里将根分区的 UUID 换成硬件路径
# vi /etc/fstab
将以下内容:
......
UUID=53ee2f87-89b8-4cd7-a4dc-0957d28f4831 / xfs defaults 0 0
(补充:这里的 UUID 是: 53ee2f87-89b8-4cd7-a4dc-0957d28f4831)
修改为:
/dev/vda1 / xfs defaults 0 0
4.3 删除不用的软件
# zypper -n rm firewalld-*
4.4 进行分区扩展
4.4.1 安装分区扩展软件
# zypper -n in growpart
4.4.2 给开机自启配置文件相应的权限
# chmod 755 /root/growpart.sh
4.4.3 设置开机自动扩容根目录
4.4.3.1 让 systemctl 管理 /root/growpart.sh 脚本
4.4.3.1.1 创建 systemctl 管理 /root/growpart.sh 脚本的配置文件
# vim /etc/systemd/system/growpart.service
创建以下内容:
[Unit]
Description=growpart
After=default.target
[Service]
Type=oneshot
ExecStart=/root/growpart.sh
[Install]
WantedBy=default.target
4.4.3.1.2 让 systemctl 管理 /root/growpart.sh 脚本
# systemctl daemon-reload
4.4.3.2 设置开机自动扩容根目录
# systemctl enable --now growpart.service
4.5 只使用本地软件源(选做)
4.5.1 禁用所有软件源(选做)
# zypper mr -da
4.5.2 添加本地软件源(选做)
# zypper ar -fcg http://10.0.0.254/openSUSE-Leap-15/ lan
(注意: http://10.0.0.254/openSUSE-Leap-15/ 需要根据真实环境的情况进行更改)
4.5.3 添加本地软件源(选做)
# zypper ref
4.6 修改虚拟机系统的名称
# hostnamectl set-hostname template_opensuse_leap_15_10g
4.7 启用 serial 服务实现通过 virsh console 命令控制虚拟机
# systemctl start serial-getty@ttyS0
# systemctl enable serial-getty@ttyS0
4.8 清除虚拟系统的历史命令
# history -c
4.9 关闭虚拟机
# poweroff
步骤五:此时就可以将此虚拟机的硬件文件作为模板进行批量克隆虚拟机了
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
1) 一定要使用刚刚创建的 template_opensuse_leap_15_10g.qcow2 作为安装虚拟机的硬件文件
2) 虚拟机网络 “0” 要提前创建好
3) 只分一个分区,只设置一个挂载点挂载到根,使用标准硬盘,硬盘格式是 XFS
4) 选择最小化安装系统
(只在虚拟机上执行以下步骤)
# vi /etc/default/grub
将全部内容修改如下:
# If you change this file, run 'grub2-mkconfig -o /boot/grub2/grub.cfg' afterwards to update
# /boot/grub2/grub.cfg.
# Uncomment to set your own custom distributor. If you leave it unset or empty, the default
# policy is to determine the value from /etc/os-release
GRUB_DISTRIBUTOR=
GRUB_DEFAULT=saved
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=8
GRUB_CMDLINE_LINUX_DEFAULT="splash=silent mitigations=auto quiet"
GRUB_SERIAL_COMMAND="serial --unit=1 --speed=115200"
GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=tty0 console=ttyS0,115200n8"
GRUB_DISABLE_LINUX_UUID="true"
GRUB_ENABLE_LINUX_LABEL="true"
GRUB_DISABLE_RECOVERY="true"
# Uncomment to automatically save last booted menu entry in GRUB2 environment
# variable `saved_entry'
# GRUB_SAVEDEFAULT="true"
#Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
# GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
#Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL="gfxterm"
# The resolution used on graphical terminal
#note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE="auto"
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
# GRUB_DISABLE_LINUX_UUID=true
#Uncomment to disable generation of recovery mode menu entries
# GRUB_DISABLE_RECOVERY="true"
#Uncomment to get a beep at grub start
# GRUB_INIT_TUNE="480 440 1"
GRUB_BACKGROUND=
GRUB_THEME=/boot/grub2/themes/openSUSE/theme.txt
SUSE_BTRFS_SNAPSHOT_BOOTING="true"
GRUB_DISABLE_OS_PROBER="false"
GRUB_ENABLE_CRYPTODISK="n"
GRUB_CMDLINE_XEN_DEFAULT="vga=gfx-1024x768x16"
(只在虚拟机上执行以下步骤)
# grub2-mkconfig -o grub
(只在虚拟机上执行以下步骤)
# blkid
/dev/vda1: UUID="53ee2f87-89b8-4cd7-a4dc-0957d28f4831" TYPE="xfs" PARTUUID="3d8377ef-01"
(补充:这里的 UUID 是: 53ee2f87-89b8-4cd7-a4dc-0957d28f4831)
(只在虚拟机上执行以下步骤)
# vi /etc/fstab
将以下内容:
......
UUID=53ee2f87-89b8-4cd7-a4dc-0957d28f4831 / xfs defaults 0 0
(补充:这里的 UUID 是: 53ee2f87-89b8-4cd7-a4dc-0957d28f4831)
修改为:
......
/dev/vda1 / xfs defaults 0 0
(只在虚拟机上执行以下步骤)
# zypper -n rm firewalld-*
(只在虚拟机上执行以下步骤)
# zypper -n in growpart
(只在虚拟机上执行以下步骤)
# chmod 755 /root/growpart.sh
(只在虚拟机上执行以下步骤)
# vim /etc/systemd/system/growpart.service
创建以下内容:
[Unit]
Description=growpart
After=default.target
[Service]
Type=oneshot
ExecStart=/root/growpart.sh
[Install]
WantedBy=default.target
(只在虚拟机上执行以下步骤)
# systemctl daemon-reload
(只在虚拟机上执行以下步骤)
# systemctl enable --now growpart.service
(只在虚拟机上执行以下步骤)
# zypper mr -da
(只在虚拟机上执行以下步骤)
# zypper ar -fcg http://10.0.0.254/openSUSE-Leap-15/ lan
(注意: http://10.0.0.254/openSUSE-Leap-15/ 需要根据真实环境的情况进行更改)
(只在虚拟机上执行以下步骤)
# zypper ref
(只在虚拟机上执行以下步骤)
# hostnamectl set-hostname template_opensuse_leap_15_10g
(只在虚拟机上执行以下步骤)
# systemctl start serial-getty@ttyS0
# systemctl enable serial-getty@ttyS0
(只在虚拟机上执行以下步骤)
# history -c
(只在虚拟机上执行以下步骤)
# poweroff
(只在真机上执行以下步骤)
# cat /etc/*release*
# cat /proc/version
制作一个 openSUSE Leap 15.1 安装 U 盘, openSUSE Leap 15.1 系统景象下载地址:
在第三方 openSUSE Leap 15.1 软件源上下载无线网卡驱动 broadcom-wl 和无线网卡驱动的依赖软件 broadcom-wl-kmp:
https://mirrors.aliyun.com/packman/openSUSE_Leap_15.1/Essentials/x86_64/
(步骤略)
(注意:U 盘需要是 ufi 模式)
(步骤略)
(步骤略)
(步骤略)
(
补充:
1) 要分出一部分硬盘空间用作系统启动
2) 系统分区不设置硬盘加密否则系统开机时会需要输入两次硬盘加密密码
3) 数据分区可以设置硬盘加密
4) 交换分区和内存设置的大小相同
5) 在左侧选择 “Hard Disks”,再在右侧选择对应的分区,再点击 “Delete” 可以将对应的分区删除
6) 在左侧选择 “Hard Disks”,再在右侧选择对应的硬盘,再点击 “Partitions” 可以创建、删除和修改分区
)
(
补充:
1) 在 “Security” 下开启 “Firewall”
2) 在 “Security” 下关闭 “SSH service”
3) 在 “Security” 下锁住 “SSH port”
4) 在 “Network Configuration” 下使用 “NetworkManager”
)
(步骤略)
# hostnamectl set-hostname linux
# zypper in broadcom-wl-kmp-default-6.30.223.271_k4.12.14_lp151.28.36-pm151.11.61.x86_64.rpm
# zypper in broadcom-wl-6.30.223.271-pm151.11.61.x86_64.rpm
# yast
(
补充:
1) Enabled “Main Repository”
2) Enabled “Main Update Repository”
3) Enabled “Non-OSS Repository”
4) Enabled “Update Repository(Non-Oss)”
5) 确保其他的软件源没有被 Enabled
)
# zypper -n update
# yast
# zypper -n install fuse-exfat exfat-utils
# zypper in -t pattern kvm_server
# zypper in -t pattern kvm_tools
# zypper -n in -t pattern gnome
# zypper -n in -t pattern gnome
......
DISPLAYMANAGER_XSERVER="Xorg"
修改为:
......
DISPLAYMANAGER_XSERVER="gdm"
# systemctl set-default graphical.target
# init 5
(步骤略)
(
补充:
1) 设置 “Full Name”
2) 设置 “Username”
3) 选择 “Set a password now”
4) 设置 “Password”
)
# sslocal -s <server IP address> -p <server port> -l <local port> -k <server VPN password> -t 600 -m <server VPN encryption method>
(
补充:
1) 服务器的 IP 地址、服务器的端口号、服务器的 VPN 密码和服务器的 VPN 加密方法由服务端设置
2) 本地端口号可自行设置
)
(注意:这里的“本地端口号”要与刚刚在 /etc/proxychains.conf 里设置的 “socks5 127.0.0.1 1000” 中的 “1000” 一致)
# proxychains4 <application which need use VPN>
# systemctl start libvirtd
# virt-manager
在创建 KVM 虚拟机之前要先安装 KVM 并创建 KVM 虚拟网络
在 CentOS 官网上下载安装系统所需要的镜像:
主要用于批量克隆出新的 KVM 机器,节约创建新虚拟机的时间
(只在真机上执行以下步骤)
# qemu-img create -f qcow2 /var/lib/libvirt/images/template_centos_8_10g.qcow2 10G
(只在真机上执行以下步骤)
# ls /var/lib/libvirt/images/ | grep template_centos_8_10g.qcow2
(只在真机上执行以下步骤)
# virt-manager
(只在真机上执行以下步骤)
(步骤略)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(注意:虚拟网络必须提前创建好)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
需要手动配置的地方有三个:
1) “INSTALLATION DESTINATION”
2) “KDUMP”
3) “SOFTWARE SELECTION”
分别点击以后就可以配置了
(只在真机上执行以下步骤)
(补充:完成后点击左上角的 “DONE”)
(注意:只分一个分区,只设置一个挂载点挂载到根,使用标准硬盘类型,硬盘格式设置为 XFS)
(只在真机上执行以下步骤)
(补充:完成后点击左上角的 “DONE”)
(只在真机上执行以下步骤)
(补充:完成后点击左上角的 “DONE”)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
(只在真机上执行以下步骤)
1) 一定要使用刚刚创建的 /var/lib/libvirt/images/template_centos_8_10g.qcow2 作为安装虚拟机的硬件文件
2) 虚拟机网络 “vlan001” 要提前创建好
3) 只分一个分区,只设置一个挂载点挂载到根,使用标准硬盘,硬盘格式是 XFS
4) 取消 “KDUMP”
5) 选择最小化安装系统
(只在虚拟机上执行以下步骤)
# vi /etc/sysconfig/network-scripts/ifcfg-ens3
将全部内容修改如下:
# vi /etc/sysconfig/network-scripts/ifcfg-ens3
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=ens3
DEVICE=ens3
ONBOOT=yes
(只在虚拟机上执行以下步骤)
# reboot
(只在虚拟机上执行以下步骤)
# vi /etc/selinux/config
将全部内容修改如下:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
(只在虚拟机上执行以下步骤)
# vi /etc/sysconfig/network
将全部内容修改如下:
# Created by anaconda
NOZEROCONF="yes"
(只在虚拟机上执行以下步骤)
# vi /etc/default/grub
将全部内容修改如下:
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --unit=1 --speed=115200"
GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=tty0 console=ttyS0,115200n8"
GRUB_DISABLE_LINUX_UUID="true"
GRUB_ENABLE_LINUX_LABEL="true"
GRUB_DISABLE_RECOVERY="true"
(只在虚拟机上执行以下步骤)
# grub2-mkconfig -o grub
(只在虚拟机上执行以下步骤)
# blkid
/dev/sda1: UUID="e76ed189-6d0f-49d5-8586-c5aae4bdc9b5" TYPE="xfs" PARTUUID="3d8377ef-01"
(补充:这里的 UUID 是: e76ed189-6d0f-49d5-8586-c5aae4bdc9b5)
(只在虚拟机上执行以下步骤)
# vi /etc/fstab
将以下内容:
......
UUID=e76ed189-6d0f-49d5-8586-c5aae4bdc9b5 / xfs defaults 0 0
(补充:这里的 UUID 是: e76ed189-6d0f-49d5-8586-c5aae4bdc9b5)
修改为:
/dev/sda1 / xfs defaults 0 0
(只在虚拟机上执行以下步骤)
# yum -y remove firewalld-* python-firewall
(只在虚拟机上执行以下步骤)
# mkdir /etc/yum.repos.d/backup
(只在虚拟机上执行以下步骤)
# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
(只在虚拟机上执行以下步骤)
# vi /etc/yum.repos.d/lan.repo
创建以下内容:
[CentOS8BaseOS]
name=CentOS8BaseOS
baseurl=http://192.168.100.254/CentOS8/BaseOS/
enabled=1
gpgcheck=0
[CentOS8AppStream]
name=CentOS8AppStream
baseurl=http://192.168.100.254/CentOS8/AppStream/
enabled=1
gpgcheck=0
(注意:http://192.168.1.250/centos8/ 需要根据真实环境的情况进行更改)
(只在虚拟机上执行以下步骤)
# yum clean all
(只在虚拟机上执行以下步骤)
# yum repolist
(只在虚拟机上执行以下步骤)
# yum -y update
(只在虚拟机上执行以下步骤)
# yum install -y cloud-utils-growpart
(只在虚拟机上执行以下步骤)
# chmod 755 /etc/rc.local
(只在虚拟机上执行以下步骤)
# vi /etc/rc.local
添加以下内容:
......
/usr/bin/growpart /dev/sda1
/usr/sbin/xfs_growfs /
(只在虚拟机上执行以下步骤)
# vi /etc/hostname
将全部内容修改如下:
template_centos_8_10g
(只在虚拟机上执行以下步骤)
# systemctl start serial-getty@ttyS0
# systemctl enable serial-getty@ttyS0
(只在虚拟机上执行以下步骤)
# history -c
(只在虚拟机上执行以下步骤)
# poweroff
(只在真机上执行以下步骤)
# sudo virt-sysprep -d template_centos_8_10g
(
注意:如果此命令不存在
1) CentOS 系统的话需要安装 libguestfs-tools
2) openSUSE 系统的话需要安装 guestfs-tools
)
(只在真机上执行以下步骤)