bin456789 / reinstall

一键DD/重装脚本 (One-click reinstall OS on VPS)
GNU General Public License v3.0
1.97k stars 323 forks source link

请问这个脚本只支持虚拟机吗? #118

Closed hausen1012 closed 5 days ago

hausen1012 commented 1 month ago

由于物理机环境混乱,想重装系统,但是u盘安装太麻烦,通过这个脚本安装似乎不行。系统是centos7

bin456789 commented 1 month ago

安装centos7用的是官方打包好的镜像,是给虚拟机用的,镜像内没有固件和微码 脚本也没有添加上,所以用不了

hausen1012 commented 1 month ago

大佬,不好意思,我没说清楚。我的物理机系统是centos7,想要dd的系统是debian,执行脚本提示没问题,但是重启并没有进入安装debian的引导界面

hausen1012 commented 1 month ago

所以我想确定下,物理机是否能dd呢?

bin456789 commented 1 month ago

大佬,不好意思,我没说清楚。我的物理机系统是centos7,想要dd的系统是debian,执行脚本提示没问题,但是重启并没有进入安装debian的引导界面

这就奇怪了,因为安装debian用的是官方netboot,按道理能用于物理机 就算装不了,至少也能进安装界面 你是重启后进入了哪个界面?

hausen1012 commented 1 month ago

重启后还是进入之前centos的界面,但是我使用虚拟机centos的话就有reinstall 界面

hausen1012 commented 1 month ago

大佬,不好意思,我没说清楚。我的物理机系统是centos7,想要dd的系统是debian,执行脚本提示没问题,但是重启并没有进入安装debian的引导界面

这就奇怪了,因为安装debian用的是官方netboot,按道理能用于物理机 就算装不了,至少也能进安装界面 你是重启后进入了哪个界面?

刚刚试了下ubuntu22.04,重装20.04发现重启后也是直接进入原来的系统。 image

bin456789 commented 1 month ago

能进bios的话手动选择reinstall.efi引导 不能的话看看以下命令 mount | grep /boot/efi efibootmgr -v lsblk -f -o +UUID,PARTUUID

hausen1012 commented 1 month ago

能进bios的话手动选择reinstall.efi引导 不能的话看看以下命令 mount | grep /boot/efi efibootmgr -v lsblk -f -o +UUID,PARTUUID

大佬,您看看。对了,我是选择重装的,是不是要选dd才行? image

bin456789 commented 1 month ago

好像没什么问题,再看看 yum install -y mokutil mokutil --sb-state

hausen1012 commented 1 month ago

对了大佬,centos不行,我重装了ubuntu,所以现在是ubuntu,发现也是不行。 image

bin456789 commented 1 month ago

再看看 tree /boot/efi

hausen1012 commented 1 month ago

再看看 tree /boot/efi

image

bin456789 commented 1 month ago

所有东西都正常 剩下一种可能就是你的电脑不支持设置一次性 efi 引导 但你的电脑是华硕笔记本?大厂应该不会有这种 bug

只能换个脚本试试了,其他脚本用的是添加 grub 引导项,应该没有这种问题

hausen1012 commented 1 month ago

所有东西都正常 剩下一种可能就是你的电脑不支持设置一次性 efi 引导 但你的电脑是华硕笔记本?大厂应该不会有这种 bug

只能换个脚本试试了,其他脚本用的是添加 grub 引导项,应该没有这种问题

也有可能是这个bug,这个是很多年之前的机器

hausen1012 commented 1 month ago

所有东西都正常 剩下一种可能就是你的电脑不支持设置一次性 efi 引导 但你的电脑是华硕笔记本?大厂应该不会有这种 bug

只能换个脚本试试了,其他脚本用的是添加 grub 引导项,应该没有这种问题

刚看了眼似乎确实是只有boot才能看见引导,但是插上网线好像获取不到网络。 b9a07e52f90c65298a92e28d83738ac

bin456789 commented 1 month ago

alpine netboot 没有你的网卡驱动 试下安装 debian

hausen1012 commented 1 month ago

netboot

这是尝试安装ubuntu,ubuntu的也没有吗

bin456789 commented 1 month ago

这个脚本安装所有系统都会经过alpine(除了安装debian) 所以不支持原生 ubuntu netboot

hausen1012 commented 1 month ago

这个脚本安装所有系统都会经过alpine(除了安装debian) 所以不支持原生 ubuntu netboot 好像之前的会有影响 image

bin456789 commented 1 month ago

efibootmgr efibootmgr | grep 'reinstall' | awk -F '*' '{print $1}' | sed 's/Boot//' efibootmgr --bootnum 0004 --delete-bootnum

hausen1012 commented 1 month ago

网络环境不行,好像有个文件下载不到。我多试几次看看呢。

还有一个想请教大佬的问题。比如说现在我有一个系统,但是我想把这个系统做为镜像,让其他机器能安装镜像就和现在这个系统一模一样,这种方式能行吗?如果可行的需要怎么做?

我目前的想法是,挂载硬盘,用 dd 命令把整块硬盘写入挂载的硬盘这种方式,不知道是否可行?

如果有方法能把当前的系统做成一个镜像,然后使用大佬您的脚本直接安装就好了。

bin456789 commented 1 month ago

即使你做了镜像,这个脚本也是用不了的 因为这个脚本dd是在alpine netboot环境下进行的,里面没有你的网卡驱动

不过你可以在本机上直接dd镜像,不用脚本,大概这样

echo u >/proc/sysrq-trigger
curl xxx | xz(gzip) -dc | dd of=/dev/sda
echo b >/proc/sysrq-trigger
hausen1012 commented 1 month ago

即使你做了镜像,这个脚本也是用不了的 因为这个脚本dd是在alpine netboot环境下进行的,里面没有你的网卡驱动

不过你可以在本机上直接dd镜像,不用脚本,大概这样

echo u >/proc/sysrq-trigger
curl xxx | xz(gzip) -dc | dd of=/dev/sda
echo b >/proc/sysrq-trigger

请问这个xxx可以是官方提供的好iso镜像吗?还是哪里来?

bin456789 commented 1 month ago

就是你自己做的镜像啊,大概这样弄

dd if=/dev/sda | gzip >/其他硬盘目录/a.gzip

不能iso

bin456789 commented 1 month ago

ubuntu 也有官方镜像,不过是虚拟机用的,你机器用了大概是启动不了

echo u >/proc/sysrq-trigger 
curl -L https://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.tar.gz | tar xz --wildcards *.img -O >/dev/sda
echo b >/proc/sysrq-trigger
hausen1012 commented 1 month ago

就是你自己做的镜像啊,大概这样弄

dd if=/dev/sda | gzip >/其他硬盘目录/a.gzip

不能iso

想试试自己做的,那这个是不是必须得准备一块比系统大的硬盘

bin456789 commented 1 month ago

想试试自己做的,那这个是不是必须得准备一块比系统大的硬盘

额 备份的话,通常用gzip/xz压缩,所以不用多大 还原的话,是,但假如你先缩小了系统分区再备份的话,就没有这个问题

其实是很简单的东西,网上应该有教程

hausen1012 commented 1 month ago

想试试自己做的,那这个是不是必须得准备一块比系统大的硬盘

额 备份的话,通常用gzip/xz压缩,所以不用多大 还原的话,是,但假如你先缩小了系统分区再备份的话,就没有这个问题

其实是很简单的东西,网上应该有教程

其实是上网搜了,但是可能由于对着方面只是匮乏,缺少有效关键词,感谢大佬的解答

bin456789 commented 1 month ago

你应该搜索 dd 备份还原系统,而不是制作dd镜像,虽然他们是一回事 会了然后搜索缩小 ext4

hausen1012 commented 1 month ago

好的好的,收到!!!

hausen1012 commented 1 month ago

大佬,我试了这个,发现备份完,无论是删除还是新增文件,都没有复原。

dd if=/dev/sda  bs=16384 count=65536 | gzip > /mnt/ubuntu.gzip
# 其他操作 新增删除 xxx
gunzip -c /mnt/ubuntu.gzip | dd of=/dev/sda bs=16384
bin456789 commented 1 month ago

不要乱设置 bs 和 count 备份时要umount sda或者设为只读 还原后再mount

hausen1012 commented 1 month ago

不要乱设置 bs 和 count 备份时要umount sda或者设为只读 还原后再mount

那我sda就是系统盘呢?是不是需要U盘进入系统才能备份?

bin456789 commented 1 month ago

最好是 但也可以不用,搜索 sysrq-trigger

hausen1012 commented 1 month ago

感谢耐心解答!!