У меня есть HDD с установленной Ubuntu 16.04, и теперь мне нужно установить Windows как вторую ОС, не теряя никаких данных в Linux. Если я правильно понял, это можно сделать, создав раздел и установив Windows на новый. Однако я не знаю, как создать таблицу разделов в файловой системе ext4, особенно если это системный диск.
Я также пытался создать новую таблицу разделов, загрузившись с флешки и отмонтировав sda3, чтобы создать раздел, но успеха это не принесло.
Как создать таблицу разделов без потери данных и стабильности Linux? Также приветствуются альтернативные способы.
решение1
Вы не можете создать раздел на файловой системе ext4. В начале вашего диска есть таблица разделов (устаревший тип BIOS или GTP), которая описывает, сколько и какого размера разделов у вас есть на диске. Файловые системы создаются на этих разделах. (Файловая система NTFS для Windows, EXT4 или несколько других типов для Linux.
В вашем случае вам необходимо сделать:
- Сначала сделайте резервную копию важных данных. Это крайне важно.
- Загрузите Linux с флешки (или любого другого источника, кроме системного диска)
- Измените размер раздела ext4 (уменьшите). Вы не можете уменьшить смонтированные разделы, поэтому вам придется загружаться с внешнего источника.
- Измените размер системно-виртуального раздела, совпадающего с уменьшенным размером ext4. Я предлагаю вам использовать немного больший размер, чем размер ext4 для безопасного встряхивания. Поскольку вы используете lvm, вы можете сделать это с помощью lvresize. Вы даже можете выполнить шаги 3.+4. сразу с помощью опции lvresize --resizefs, что является самым безопасным вариантом.
- Теперь вам нужно уменьшить физический объем с помощью pvresize. Выберите размер, который вам понадобится для всех будущих разделов Linux (вы можете создавать разделы на лету с помощью lvm).
- Теперь удалите+создайте заново ваш базовый раздел GPT. Если вы удалите+создайте заново ваш раздел, выДОЛЖЕНначните новый раздел втакой жеположение сектора, чем у удаленного раздела, в противном случае вы потеряете данные LVM (и, скорее всего, вашу файловую систему).
- Теперь вы можете создать новый раздел для Windows (или позволить ему это сделать). (Перед этим я бы проверил, смогу ли я загрузить Linux).
Ключевые команды (все от имени пользователя root или с помощью sudo):
# to list your logical volumes with phyisical pv-s
lvs -o +devices
# if you want 20G linux system disk
lvresize -r /dev/ubuntu-gnome-vg/your-system-lv-name 20G
# if you want preserve 500G for linux (you can use this space for anything)
pvresize --setphysicalvolumesize 500G /dev/sda3
# now resize the 3rd partition on disk1 to 500G (maybe a bit bigger for safety)
fdisk/parted/gparted
# after a reboot you can match up your pv exactly with the physical partition with (this is useful if you used the safe method and created a bit bigger partition eg.510G)
pvresize /dev/sda3
Хотя это отлично работает (я делал это несколько раз), это несколько продвинутый метод, не для новичков. Если вы не очень хорошо знакомы с lvm/gpt, может быть проще сделать резервную копию вашей файловой системы linux (смонтировать ее с загрузочного компакт-диска, tar+gzip всю вашу файловую систему и скопировать на флешку/внешний жесткий диск). Затем создайте два раздела (фактически три, оставьте маленький efi, один раздел для win и один для linux), установите windows и заново создайте вашу файловую систему linux из tar.gz. Вам в любом случае следует сделать резервную копию, поэтому даже если вы выберете первый метод, это может быть вашим планом резервного копирования!
Разное примечание: Ваш Windows может (и скорее всего так и будет) перезаписать ваш менеджер загрузки (например, grub), и ваш Linux не будет загружаться. В случае UEFI/GPT вы можете выбрать свою ОС, в устаревших системах вам придется переустановить grub. Это просто, просто загрузитесь с usb, chroot в системную файловую систему и grub-install /dev/yourharddiskdevname. Многие install usb (debian, ubuntu) могут загружаться с вашего диска (тогда вам не придется chroot).
решение2
По моему опыту, проще сначала установить Windows, а потом Linux.
Однако Windows обычно требует NTFS
раздел. Windows переопределяетgrub2
менеджер загрузкисо своими окнамизагрузчик. Хотя grub2
загрузчик Windows может справиться с загрузкой Windows и Linux (меню выбора и загрузка по умолчанию через < n > секунд), загрузчик Windows просто загружает ОС Windows.
- Резервная система
- изменить размер раздела Linux
- создать новый раздел и отформатировать его в
NTFS
файловой системе - загрузитесь с установочного носителя Windows (DVD/USB) и установите Windows на
NTFS
раздел - загрузочный носитель Linux Live Installer
- chroot раздел Linux и исправление grub2 (обновление/переустановка)
сделанный