KubeOS:add the configuration of /etc/resolv.conf and change the VM disk to gpt.

Add the user-defined /etc/resolv.conf file and change the VM disk to gpt
to be the same as that on the physical machine.

Signed-off-by: liyuanr <liyuanrong1@huawei.com>
This commit is contained in:
liyuanr 2022-09-03 14:37:09 +08:00
parent 5ab9a1e933
commit dcbc7f8199
2 changed files with 262 additions and 1 deletions

View File

@ -0,0 +1,254 @@
From a1bf179490d33c25dd49fe6c363eec5e0e8fe532 Mon Sep 17 00:00:00 2001
From: liyuanr <liyuanrong1@huawei.com>
Date: Sat, 3 Sep 2022 14:21:54 +0800
Subject: [PATCH] KubeOS:add the configuration of /etc/resolv.conf and change
the VM disk to gpt.
Add the user-defined /etc/resolv.conf file and change the VM disk to gpt
to be the same as that on the physical machine.
Signed-off-by: liyuanr <liyuanrong1@huawei.com>
---
cmd/agent/server/docker_image.go | 3 +-
scripts/00bootup/mount.sh | 50 ++++++++++++++++++--------------
scripts/bootloader.sh | 4 +--
scripts/create/imageCreate.sh | 12 ++++----
scripts/create/rootfsCreate.sh | 4 +++
scripts/grub.cfg | 8 ++---
6 files changed, 45 insertions(+), 36 deletions(-)
diff --git a/cmd/agent/server/docker_image.go b/cmd/agent/server/docker_image.go
index 4f9edc1..735ace0 100644
--- a/cmd/agent/server/docker_image.go
+++ b/cmd/agent/server/docker_image.go
@@ -108,8 +108,7 @@ func pullOSImage(req *pb.UpdateRequest) (string, error) {
if err = os.Chmod(imagePath, imgPermission); err != nil {
return "", err
}
- _, next, err := getNextPart(partA, partB)
- if err = runCommand("mkfs.ext4", "-L", "ROOT-"+next, imagePath); err != nil {
+ if err = runCommand("mkfs.ext4", "-L", "ROOT-A", imagePath); err != nil {
return "", err
}
if err = runCommand("mount", "-o", "loop", imagePath, tmpMountPath); err != nil {
diff --git a/scripts/00bootup/mount.sh b/scripts/00bootup/mount.sh
index 1bc83ff..7f00fd6 100644
--- a/scripts/00bootup/mount.sh
+++ b/scripts/00bootup/mount.sh
@@ -23,6 +23,14 @@ function CheckSpace() {
return 0
}
+function mount_proc_dev_sys() {
+ local tmp_root=$1
+ mount -t proc none "${tmp_root}/proc"
+ mount --bind /dev "${tmp_root}/dev"
+ mount --bind /dev/pts "${tmp_root}/dev/pts"
+ mount -t sysfs none "${tmp_root}/sys"
+}
+
function GetDisk() {
disks=(`hwinfo --disk --short 2>&1 | grep -vi "^disk" | awk '{print $1}'`)
if [ ${#disks[*]} -gt 0 ]; then
@@ -162,14 +170,13 @@ function MountRoot() {
function MountPersist() {
echo "Mounting persist"
- mkdir /persist
- mount ${disk}4 /persist >> ${log} 2>&1
+ mount ${disk}4 /sysroot/persist >> ${log} 2>&1
if [ $? -ne 0 ]; then
echo "mount persist failed" | tee -a ${log}
return 1
fi
- mkdir /persist/{var,etc,etcwork}
- mkdir -p /persist/etc/KubeOS/certs
+ mkdir /sysroot/persist/{var,etc,etcwork}
+ mkdir -p /sysroot/persist/etc/KubeOS/certs
return 0
}
@@ -187,20 +194,20 @@ function MountBoot() {
function GetRootfs() {
echo "Downloading rootfs..."
- curl -o /persist/${rootfs_name} http://${server_ip}/${rootfs_name}
- if [ ! -e "/persist/${rootfs_name}" ]; then
+ curl -o /${rootfs_name} http://${server_ip}/${rootfs_name}
+ if [ ! -e "/${rootfs_name}" ]; then
echo "download rootfs failed" | tee -a ${log}
return 1
fi
- tar -xvf /persist/${rootfs_name} -C /sysroot
+ tar -xf /${rootfs_name} -C /sysroot
if [ $? -ne 0 ]; then
echo "decompose rootfs failed" | tee -a ${log}
return 1
fi
- rm -rf /persist/${rootfs_name}
-
+ rm -rf /${rootfs_name}
+ mount -o remount,ro ${disk}2 /sysroot >> ${log} 2>&1
return 0
}
@@ -283,6 +290,8 @@ function Bootup_Main() {
fi
# mount partitions
+
+ # mount boot
echo "Mounting root..." | tee -a ${log}
MountRoot
if [ $? -ne 0 ]; then
@@ -290,15 +299,6 @@ function Bootup_Main() {
return 1
fi
- # mount persist
- echo "Mounting persisst..." | tee -a ${log}
- MountPersist
- if [ $? -ne 0 ]; then
- echo "Mounting persist failed" | tee -a ${log}
- return 1
- fi
-
- # mount boot
echo "Mounting boot..." | tee -a ${log}
MountBoot
if [ $? -ne 0 ]; then
@@ -313,7 +313,7 @@ function Bootup_Main() {
echo "Downloading rootfs failed" | tee -a ${log}
return 1
fi
-
+ mount_proc_dev_sys /sysroot
# set boot
echo "Setting boot..." | tee -a ${log}
SetBoot
@@ -321,7 +321,13 @@ function Bootup_Main() {
echo "Setting boot failed" | tee -a ${log}
return 1
fi
-
+ # mount persist
+ echo "Mounting persist..." | tee -a ${log}
+ MountPersist
+ if [ $? -ne 0 ]; then
+ echo "Mounting persist failed" | tee -a ${log}
+ return 1
+ fi
return 0
}
@@ -329,7 +335,7 @@ Bootup_Main
ret=$?
if [ ${ret} -eq 0 ]; then
echo "kubeOS install success! switch to root" | tee -a ${log}
- cp ${log} /persist
+ cp ${log} /sysroot/persist
else
echo "kubeOS install failed, see install.log" | tee -a ${log}
-fi
\ No newline at end of file
+fi
diff --git a/scripts/bootloader.sh b/scripts/bootloader.sh
index 0f906d4..5760f3d 100644
--- a/scripts/bootloader.sh
+++ b/scripts/bootloader.sh
@@ -16,7 +16,7 @@ function install_grub2_x86 ()
# make efi file, and save in FAT16 partition, to support UEFI boot mode
cp -r /usr/lib/grub/x86_64-efi boot/efi/EFI/openEuler
- eval "grub2-mkimage -d /usr/lib/grub/x86_64-efi -O x86_64-efi --output=/boot/efi/EFI/openEuler/grubx64.efi '--prefix=(,msdos1)/EFI/openEuler' fat part_gpt part_msdos linux"
+ eval "grub2-mkimage -d /usr/lib/grub/x86_64-efi -O x86_64-efi --output=/boot/efi/EFI/openEuler/grubx64.efi '--prefix=(,gpt1)/EFI/openEuler' fat part_gpt part_msdos linux"
mkdir -p /boot/EFI/BOOT/
cp -f /boot/efi/EFI/openEuler/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI
@@ -25,7 +25,7 @@ function install_grub2_x86 ()
function install_grub2_efi ()
{
cp -r /usr/lib/grub/arm64-efi /boot/efi/EFI/openEuler/
- eval "grub2-mkimage -d /usr/lib/grub/arm64-efi -O arm64-efi --output=/boot/efi/EFI/openEuler/grubaa64.efi '--prefix=(,msdos1)/EFI/openEuler' fat part_gpt part_msdos linux"
+ eval "grub2-mkimage -d /usr/lib/grub/arm64-efi -O arm64-efi --output=/boot/efi/EFI/openEuler/grubaa64.efi '--prefix=(,gpt1)/EFI/openEuler' fat part_gpt part_msdos linux"
mkdir -p /boot/EFI/BOOT/
cp -f /boot/efi/EFI/openEuler/grubaa64.efi /boot/efi/EFI/BOOT/BOOTAA64.EFI
diff --git a/scripts/create/imageCreate.sh b/scripts/create/imageCreate.sh
index 9689f62..e615d5f 100644
--- a/scripts/create/imageCreate.sh
+++ b/scripts/create/imageCreate.sh
@@ -16,12 +16,12 @@ PWD="$(pwd)"
function create_img() {
rm -f system.img update.img
qemu-img create system.img ${IMG_SIZE}G
- parted system.img -- mklabel msdos
- parted system.img -- mkpart primary fat16 1MiB 60MiB
- parted system.img -- mkpart primary ext4 60MiB 2160MiB
- parted system.img -- mkpart primary ext4 2160MiB 4260MiB
- parted system.img -- mkpart primary ext4 4260MiB 100%
-
+ parted system.img -s mklabel gpt
+ parted system.img -s mkpart primary fat32 1MiB 60MiB
+ parted system.img -s mkpart primary ext4 60MiB 2160MiB
+ parted system.img -s mkpart primary ext4 2160MiB 4260MiB
+ parted system.img -s mkpart primary ext4 4260MiB 100%
+ parted system.img -s set 1 boot on
local device=$(losetup -f)
losetup "${device}" system.img
diff --git a/scripts/create/rootfsCreate.sh b/scripts/create/rootfsCreate.sh
index 4c02c35..29f2762 100644
--- a/scripts/create/rootfsCreate.sh
+++ b/scripts/create/rootfsCreate.sh
@@ -46,6 +46,7 @@ function install_misc() {
local VERSION=$1
local AGENT_PATH=$2
local PASSWD=$3
+ local DNS_CONF="${PWD}/resolv.conf"
cp ../files/*mount ../files/os-agent.service "${RPM_ROOT}/usr/lib/systemd/system/"
cp ../files/os-release "${RPM_ROOT}/usr/lib/"
cp "${AGENT_PATH}" "${RPM_ROOT}/usr/bin"
@@ -65,6 +66,9 @@ EOF
cp set_in_chroot.sh "${RPM_ROOT}"
ROOT_PWD="${PASSWD}" chroot "${RPM_ROOT}" bash /set_in_chroot.sh
rm "${RPM_ROOT}/set_in_chroot.sh"
+ if [ -e "${DNS_CONF}" ]; then
+ cp "${DNS_CONF}" "${RPM_ROOT}/etc/resolv.conf"
+ fi
}
function create_os_tar_from_repo() {
diff --git a/scripts/grub.cfg b/scripts/grub.cfg
index c1a2641..984b161 100644
--- a/scripts/grub.cfg
+++ b/scripts/grub.cfg
@@ -88,9 +88,9 @@ menuentry 'A' --class KubeOS --class gnu-linux --class gnu --class os --unrestri
load_video
set gfxpayload=keep
insmod gzio
- insmod part_msdos
+ insmod part_gpt
insmod ext2
- set root='hd0,msdos2'
+ set root='hd0,gpt2'
linux /boot/vmlinuz root=/dev/sda2 ro rootfstype=ext4 nomodeset quiet oops=panic softlockup_panic=1 nmi_watchdog=1 rd.shell=0 selinux=0 crashkernel=256M panic=3
initrd /boot/initramfs.img
}
@@ -99,9 +99,9 @@ menuentry 'B' --class KubeOS --class gnu-linux --class gnu --class os --unrestri
load_video
set gfxpayload=keep
insmod gzio
- insmod part_msdos
+ insmod part_gpt
insmod ext2
- set root='hd0,msdos3'
+ set root='hd0,gpt3'
linux /boot/vmlinuz root=/dev/sda3 ro rootfstype=ext4 nomodeset quiet oops=panic softlockup_panic=1 nmi_watchdog=1 rd.shell=0 selinux=0 crashkernel=256M panic=3
initrd /boot/initramfs.img
}
--
2.33.0.windows.2

View File

@ -2,7 +2,7 @@
Name: KubeOS Name: KubeOS
Version: 1.0.2 Version: 1.0.2
Release: 5 Release: 6
Summary: O&M platform used to update the whole OS as an entirety Summary: O&M platform used to update the whole OS as an entirety
License: Mulan PSL v2 License: Mulan PSL v2
Source0: https://gitee.com/openeuler/KubeOS/repository/archive/v%{version}.tar.gz Source0: https://gitee.com/openeuler/KubeOS/repository/archive/v%{version}.tar.gz
@ -10,6 +10,7 @@ Patch1: 0001-Write-a-tool-to-support-KubeOS-deployment-on-physica.patch
Patch2: 0002-KubeOS-fix-the-kbimg.sh-exception-and-pxe-installati.patch Patch2: 0002-KubeOS-fix-the-kbimg.sh-exception-and-pxe-installati.patch
Patch3: 0003-KubeOS-fixed-the-issue-of-VMs-images-and-add-check-o.patch Patch3: 0003-KubeOS-fixed-the-issue-of-VMs-images-and-add-check-o.patch
Patch4: 0004-KubeOS-add-the-clearing-of-space-before-the-upgrade-.patch Patch4: 0004-KubeOS-add-the-clearing-of-space-before-the-upgrade-.patch
Patch5: 0005-KubeOS-add-the-configuration-of-etc-resolv.conf-and-.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: make BuildRequires: make
BuildRequires: golang >= 1.13 BuildRequires: golang >= 1.13
@ -110,6 +111,12 @@ install -p -m 0600 ./files/os-release %{buildroot}/opt/kubeOS/files
rm -rfv %{buildroot} rm -rfv %{buildroot}
%changelog %changelog
* Sat Sep 03 2022 liyuanrong<liyuanrong1@huawei.com> - 1.0.2-6
- Type:requirement
- CVE:NA
- SUG:restart
- DESC:add the configuration of /etc/resolv.conf and change the VM disk to gpt.
* Wed Aug 31 2022 liyuanrong<liyuanrong1@huawei.com> - 1.0.2-5 * Wed Aug 31 2022 liyuanrong<liyuanrong1@huawei.com> - 1.0.2-5
- Type:requirement - Type:requirement
- CVE:NA - CVE:NA