
У меня есть ноутбук (ASUS harman/kardon), в котором два диска, небольшой SSD и 1TB HDD. Он был с установленной на SSD Windows, а на HDD я установил Linux.
Поскольку я почти исключительно использую раздел Linux, есть ли способ просто перенести раздел Linux на другой диск и установить Windows на жесткий диск (я не хочу терять лицензию Windows).
Я бы хотел сохранить образ Linux таким, какой он есть, и не против, если мне придется восстанавливать Windows с нуля.
Я понимаю, что мне может понадобиться дополнительное место, и у меня есть достаточно большой внешний диск, чтобы разместить оба раздела.
Так возможно ли перенести Linux на SSD, а Windows на HDD, не начиная все сначала?
Попытка 1
Я уменьшил раздел linux на жестком диске, чтобы освободить место для раздела windows. Затем я создал установочный диск windows, чтобы установить Windows на жесткий диск. К сожалению, этот установочный диск подхватывает другую установку Windows. Он также дает мне только кнопку «Установить сейчас», которая совершенно бесполезна, поскольку я понятия не имею, куда она установится.
Похоже, мне придется физически извлечь SSD, сохранить все мои Linux-данные с HDD куда-то еще, а затем запустить установку Windows и позволить ей взять управление на себя (потому что какому пользователю вообще нужно управление операционной системой?). Есть еще идеи? Есть ли способ заставить Windows установиться куда-то конкретно?
Обновлять
Я создал раздел на HDD и смог установить на него Windows. Затем я переформатировал SSD (оставив загрузочный раздел нетронутым) и использовал rsync (из связанного вопроса), чтобы скопировать все данные со старого диска на новый.
Затем я запустил sudo grub-install <SSD>
, но при загрузке grub подхватывает только установку на HDD (а также диспетчер загрузки Windows, который всегда есть). Я пропустил какой-то шаг? Нужно ли мне как-то запускать grub-install при загрузке с новой 'install'? Если да, то как мне загрузиться с нее?
Редактировать:Похоже, мне нужно сделать chroot на новую 'install'. Однако при этом я теряю диск (/dev/nvme0n1), на который хочу установить grub. Есть ли способ настроить grub так, чтобы при загрузке и наличии этого диска (я знаю, что он будет) он работал?
решение1
Итак, мне наконец удалось это сделать, и это, безусловно, потребовало много работы, но это сделано и, кажется, работает нормально (и намного быстрее). Единственное, что осталось, это разобраться со свопом, который все еще находится на жестком диске.
Шаг 1:
Создайте Linux Live Disk, загрузитесь с него и уменьшите HDD, чтобы оставить достаточно места для установки Windows (не беспокойтесь о точном размере, так как разделы в конечном итоге будут изменены). Я использовал Linux Live Disk, потому что мне нравится gparted, и я не мог сделать это с моей работающей системой Linux, поскольку этот диск был смонтирован и не мог быть изменен.
Примечание. Вы не можете переместить раздел Windows после установки Windows. Я предположил, что вы можете это сделать. Это означает, что если раздел Linux находится в начале HDD (как у меня), это место будет потрачено впустую. Я рекомендую переместить все в конец диска, а затем поместить раздел Windows в начало, так как его всегда можно расширить (однако это займет довольно много времени).
Шаг 2:
Сделать загрузочный диск Windows - можно сделатьна сайте windows. В идеале это должно быть на втором флэш-накопителе, поскольку, когда (а не если) что-то пойдет не так и вам придется начинать все заново, вам не придется создавать новый диск Linux.
Шаг 3:
Установите Windows, нажмите «Установить сейчас» и продолжайте, пока вам не предложат выбрать раздел, выберите раздел, который вы создали при изменении размера жесткого диска (его даже не нужно форматировать, Windows сама сделает свое дело со свободным местом на диске). Позвольте Windows сделать свое дело. Когда вы войдете в новую установку Windows в первый раз, она проверит лицензионный ключ.
Шаг 4:
Скопируйте все необходимое из оригинальной установки Windows.
Шаг 5:
Загрузитесь обратно в Linux с вашего живого диска (не с того, что установлен на HDD). Уничтожьте 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, но, по крайней мере, он загружается.