当前位置:网站首页 >更多 >玩电脑 > 正文

[软件技巧] Windows一键重装系统为Linux (netboot,网络安装)

作者:蓝扬日期:2019-10-29 分类:玩电脑

文章核心内容转载自@萌咖大佬

特别提醒:一键重装有一定的风险,请做好数据备份,做好抢救方案!

有些厂商的机器因策略问题,不支持Windows重装为Linux. 例如: 腾讯云非大陆区域.
有些厂商Windows系统盘会比Linux系统盘大,想要大一点系统盘. 例如: AZURE.
有些厂商不支持VNC,这对于转换系统实在不方便.
这篇文章可以解决以上问题.

使用前,请耐心看完文章.
如果造成损失,萌咖(原大佬)不负任何责任.

使用方法

下载 win32loader.bat (分流下载:https://pan.baidu.com/s/1UyEn7B4OPa7jmqANzPYHdQ).双击打开此文件.自行选择选项.按回车重启,并等待安装完成.

注意事项

如果对提供安装的发行版不满意,请参考此文章:CentOS/Debian/Ubuntu网络重装系统一键脚本
默认提供的是Debian8(Jessie),添加了firmware包,提供了更多的驱动支持,DHCP模式一键.
非DHCP模式,如果要一键,则需要自己定制镜像.
定制Debian系镜像应该没问题,其他未作测试.
默认root账户密码 Vicer .


如需要Linux一键重装为Windows,请参考

叒一个!一键全自动 DD 安装 Windows系统

Linux全自动一键DD安装Windows系统


如果厂商不支持VNC,则需要自己定制镜像.

定制方法参考上面提到的:CentOS/Debian/Ubuntu网络重装系统一键脚本
主要在镜像中添加机器的网络参数,以便支持一键安装.
命令示例:

bash InstallNET.sh -d 8 -v 64 -a --ip-addr <IP> --ip-mask <NetMask> --ip-gate <GATE> --loader

完成后将 initrd.img 和 vmlinuz 存放到能直链下载的位置.


如果厂商支持VNC,则可以直选全部选 1 .

安装的时候,自己填 IP地址子网掩码网关DNS服务器.
DNS服务器推荐填: 8.8.8.8


区分是否为DHCP模式


非DHCP模式: 如上图,显示了详细的IP地址.(选项为:使用下面的IP地址)

DHCP模式: 参考上图.(选项为:自动获得IP地址)


源码备份


@ECHO OFF&PUSHD %~DP0 &TITLE Win32Loadersetlocal enabledelayedexpansion::Author MoeClub.orgcolor 87cd.>%windir%\GetAdminif exist %windir%\GetAdmin (del /f /q "%windir%\GetAdmin") else (echo CreateObject^("Shell.Application"^).ShellExecute "%~s0", "%*", "", "runas", 1 >> "%temp%\Admin.vbs""%temp%\Admin.vbs"del /s /q "%temp%\Admin.vbs"exit /b 2)cls echo * Init Win32Loader.set URL=https://moeclub.org/attachment/WindowsSoftware set download=0set try_download=1 :Initmkdir "%SystemDrive%\win32-loader" >NUL 2>NULif exist "%SystemDrive%\Windows\System32\WindowsPowerShell" (set use_ps=1) else (set use_ps=0) if %use_ps% equ 1 (goto InitIt) else (goto InitFail) :InitItset try_download=0powershell.exe -command "& {$client = new-object System.Net.WebClient; $client.DownloadFile('!URL!/g2ldr/g2ldr','%SystemDrive%\g2ldr')}" >NUL 2>NULpowershell.exe -command "& {$client = new-object System.Net.WebClient; $client.DownloadFile('!URL!/g2ldr/g2ldr.mbr','%SystemDrive%\g2ldr.mbr')}" >NUL 2>NULpowershell.exe -command "& {$client = new-object System.Net.WebClient; $client.DownloadFile('!URL!/g2ldr/grub.cfg','%SystemDrive%\win32-loader\grub.cfg')}" >NUL 2>NULgoto InitDone :InitFailecho Not found powershell, please download them by yourself.echo '%SystemDrive%\g2ldr'echo '%SystemDrive%\g2ldr.mbr'echo '%SystemDrive%\win32-loader\grub.cfg'echo Press [ENTER] when you finished.pause >NUL 2>NULgoto InitDone :InitDoneif !try_download! equ 0 (set InitOption=InitFail) else (set InitOption=Init)if not exist "%SystemDrive%\g2ldr" goto !InitOption!if not exist "%SystemDrive%\g2ldr.mbr" goto !InitOption!if not exist "%SystemDrive%\win32-loader\grub.cfg" goto !InitOption! :Imageecho.echo * Please select initrd mode.echo [1] Online downloadecho [2] Local filechoice /n /c 12 /m Select:if errorlevel 2 goto LocalModeif errorlevel 1 goto OnlineModegoto Image :OnlineModeecho.echo * Please select source.echo [1] by MoeClub (DHCP or VNC Support)echo [2] by yourselfchoice /n /c 12 /m Select:if errorlevel 2 goto Yourselfif errorlevel 1 goto MoeClubgoto OnlineMode:Yourselfecho.echo if 'initrd.img' URL is 'https://moeclub.org/onedrive/IMAGE/Loader/DebianJessie/initrd.img', Please input 'https://moeclub.org/onedrive/IMAGE/Loader/DebianJessie'.set /p IMG_URL=URL :if defined IMG_URL (goto Download) else (goto MoeClub):MoeClubset IMG_URL=https://moeclub.org/onedrive/IMAGE/Loader/DebianJessiegoto Download:Downloadif %use_ps% equ 1 (echo.echo Downloading 'initrd.img'...powershell.exe -command "& {$client = new-object System.Net.WebClient; $client.DownloadFile('!IMG_URL!/initrd.img','%SystemDrive%\win32-loader\initrd.img')}" >NUL 2>NULecho Downloading 'vmlinuz'...powershell.exe -command "& {$client = new-object System.Net.WebClient; $client.DownloadFile('!IMG_URL!/vmlinuz','%SystemDrive%\win32-loader\vmlinuz')}" >NUL 2>NULset download=1) else (echo Not support online download, auto change Local initrd.goto LocalMode) :LocalModeif !download! equ 0 (echo.echo Please put 'initrd.img' and 'vmlinuz' to '%SystemDrive%\win32-loader' .echo Press [ENTER] when you finished.pause >NUL 2>NUL) :Done0set download=0if exist "%SystemDrive%\win32-loader\initrd.img" (goto Done1) else (echo Not found '%SystemDrive%\win32-loader\initrd.img' .goto LocalMode) :Done1set download=0if exist "%SystemDrive%\win32-loader\vmlinuz" (goto Done) else (echo Not found '%SystemDrive%\win32-loader\vmlinuz' .goto LocalMode) :Doneecho.echo Press [ENTER] to reboot...pause >NUL 2>NULif not exist "%SystemDrive%\g2ldr" echo Not found '%SystemDrive%\g2ldr' . && exit 1if not exist "%SystemDrive%\g2ldr.mbr" echo Not found '%SystemDrive%\g2ldr.mbr' . && exit 1if not exist "%SystemDrive%\win32-loader\grub.cfg" echo Not found '%SystemDrive%\win32-loader\grub.cfg' . && exit 1if not exist "%SystemDrive%\win32-loader\initrd.img" echo Not found '%SystemDrive%\win32-loader\initrd.img' . && exit 1if not exist "%SystemDrive%\win32-loader\vmlinuz" echo Not found '%SystemDrive%\win32-loader\vmlinuz' . && exit 1set id={01234567-89ab-cdef-0123-456789abcdef}bcdedit /create %id% /d "Debian GUN/Linux" /application bootsector >NUL 2>NULbcdedit /set %id% device partition=%SystemDrive% >NUL 2>NULbcdedit /set %id% path \g2ldr.mbr >NUL 2>NULbcdedit /displayorder %id% /addlast >NUL 2>NULbcdedit /bootsequence %id% /addfirst >NUL 2>NULshutdown -r -t 0


No related posts.

取消回复欢迎 发表评论:

请填写验证码
享受更多资源下载可加入本站VIP会员!登录注册
登录
用户名
密码
注册
用户名
密码
确认密码
昵称
邮箱
QQ
验证码
找回密码
用户名
邮箱
※ 重置链接将发送到邮箱
请先 登录 再评论,若不是会员请先 注册