切換windows/linux磁碟

切換windows/linux磁碟

我有一台筆記型電腦(華碩 Harman/kardon),有兩個驅動器、一個小型 SSD 和 1TB HDD。它附帶將 Windows 安裝在 SSD 上,而我將 Linux 安裝在 HDD 上。

由於我幾乎只使用linux分割區,有什麼方法可以簡單地將linux分割區切換到另一個磁碟機並將Windows放在HDD上(我不想遺失我的Windows授權)。

我想保持 Linux 映像的原樣,如果我必須從頭開始恢復 Windows,我也可以。

我知道我可能需要額外的空間,並且我有足夠大的外部驅動器來容納兩個分區。

那麼是否可以將 Linux 更換為 SSD,將 Windows 更換為 HDD,而不必在兩者上重新開始?

嘗試1

我縮小了硬碟上的 Linux 分割區,為 Windows 分割區騰出空間。然後我建立了一個 Windows 安裝磁碟來在 HDD 上安裝 Windows。不幸的是,此安裝碟安裝了其他 Windows 安裝。它還只給了我一個“立即安裝”按鈕,這是非常無用的,因為我不知道它將安裝在哪裡。

看起來我必須物理上移除 SSD,將我的 Linux 內容從 HDD 保存到其他地方,然後運行 Windows 安裝並讓它控制(因為無論如何,什麼樣的用戶需要控製作業系統?)。還有其他想法嗎?有沒有辦法強制Windows安裝在特定的地方?

更新

我在硬碟上做了一個分割區並設法在其上安裝Windows。然後,我重新格式化 SSD(保持啟動分割區完好無損)並使用 rsync(來自連結的問題)將所有資料從舊磁碟機複製到新磁碟機。

然後我運行了sudo grub-install <SSD>,但在啟動時,grub 僅選擇 HDD 上的安裝(以及 Windows 啟動管理器,它總是有)。我是不是少了一步?從新的「安裝」啟動時,我是否需要執行 grub-install ?如果是這樣,我該如何啟動?

編輯:看起來我需要 chroot 到新的「安裝」。但是,執行此操作時,我遺失了要安裝 grub 的磁碟 (/dev/nvme0n1)。有沒有辦法設定 grub,以便當它啟動並且該磁碟存在時(我知道它會),它會工作?

答案1

所以我終於成功地做到了這一點,這確實需要做很多工作,但它已經完成了,並且似乎運作良好(而且速度更快)。剩下的唯一事情就是處理交換,它仍然在硬碟上。

步驟1:

製作一個 Linux Live 磁碟,啟動它並縮小 HDD,為 Windows 安裝留出足夠的空間(不必擔心確切的大小,因為分割區最終會調整大小)。我使用了 Linux Live 磁碟,因為我喜歡 gparted,但我無法在運行的 Linux 系統上執行此操作,因為該驅動器已安裝且無法調整大小。

注意 - 安裝 Windows 後,您無法移動 Windows 分割區。我假設你可以。這意味著如果 linux 分割區位於 HDD 的開頭(正如我所見),那麼該空間最終會被浪費。我建議將所有內容移至驅動器的末尾,然後將 Windows 分割區放在開頭,因為它始終可以擴展(但這需要相當多的時間,但是)

第2步:

製作 Windows 啟動磁碟 - 可以完成在 Windows 網站上。理想情況下,這應該位於第二個快閃磁碟機上,因為當(不是如果)出現問題並且您必須重新開始時,您不必製作新的 Linux 磁碟。

步驟3:

安裝Windows,點擊“立即安裝”,然後繼續,直到它讓您選擇一個分割區,選擇您在調整硬碟大小時創建的分割區(甚至不需要格式化,Windows將使用可用空間來完成它的工作)一個驅動器)。讓 Windows 發揮它的作用。當您第一次登入新的 Windows 安裝時,它將驗證許可證金鑰。

步驟4:

從原始 Windows 安裝複製您想要的所有內容。

第5步:

從您的活動磁碟(不是安裝在 HDD 上的磁碟)引導回 Linux。銷毀SSD並建立ext4分割區。確保一開始不要碰FAT32分區,這是啟動分區,很重要。

第6步:

rsync 所有內容到新磁碟機。這涉及安裝舊磁碟和新磁碟並同步所有內容(有些事情可能會失敗,例如 /proc/devices,這很好,但請確保您是 root)。這看起來像:

mount /dev/sda2 oldDisk/ #the existing linux partition
mount /dev/nvme0n1p2 newDisk/ #The new, empty partition on SSD
rsync -avz oldDisk/ newDisk

第7步:

啟動回到原始的 Linux 安裝(這也可以在實時閃存驅動器上工作)。

mount /dev/nvme0n1p2 /mnt #Mount the new drive somewhere
mount --bind /dev /mnt/dev/
grub-install --boot-device=/mnt /dev/nvme0n1 #note this is the whole device, not just the patition (akin to /dev/sda)
update-grub #so the new stuff is picked up.

這是概述的這裡

這應該就是一切了。我已經清理了linux安裝。 Windows 啟動管理器看起來終於對自己滿意了(我猜幾個重啟週期就夠了)。

它留下了舊的 Linux 安裝,我還沒有清理它。我也不知道如何清理 Windows 啟動管理器,因為缺少的 Windows 安裝也有點混亂,但至少它可以啟動。

相關內容