Восстановление раздела: Как я могу вставить существующие разделы в расширенный раздел?

В попытке решить проблему с Windows, инструмент, который я использовал, удалил некоторые мои разделы. Я использовал TestDisk для восстановления моих разделов.

В то время как этому удалось восстановить все мои разделы данных, это не могло восстановить мой раздел подкачки. Обычно, это не было бы грандиозным предприятием, так как легко создать другой раздел подкачки. В этом случае, тем не менее, это также не нашло мой расширенный раздел, таким образом, все мои восстановленные разделы являются основными разделами вместо логических разделов. Теперь, я не могу больше создавать.

Я хочу воссоздать расположение, показанное в моем предварительном событии fstab:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda5 during installation
UUID=65340dbf-705f-409d-8bfa-54f408fe23c9 /               ext4    errors=remount-ro 0       1
# /extra was on /dev/sda8 during installation
UUID=6921d03e-e64f-4403-9381-be2b2eed62e2 /extra          ext4    defaults        0       2
# /home was on /dev/sda6 during installation
UUID=b1c33077-6a9b-4e1c-bde5-d44efc96ffbd /home           ext3    defaults        0       2
# /windows was on /dev/sda1 during installation
UUID=F624495B2449204B /windows        ntfs    defaults,umask=007,gid=46 0       0
# swap was on /dev/sda2 during installation
#UUID=1e3afc3a-152e-44ab-9275-c5ca30efad0f none            swap    sw              0       0
# swap was on /dev/sda7 during installation
#UUID=2e41ce67-2a25-4ed3-a64e-b5480172477b none            swap    sw              0       0
/dev/mapper/cryptswap1 none swap sw 0 0
/dev/mapper/cryptswap2 none swap sw 0 0

# tmpfile stuff
tmpfs /tmp tmpfs defaults,size=512M,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,size=32M,mode=1777 0 0

Вот мой текущий макет, выразил обоих как fdisk вывод и снимок экрана GParted:

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bfc8b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    41945087    20971520    7  HPFS/NTFS/exFAT
/dev/sda2        41955328    83898367    20971520   83  Linux
/dev/sda3        83900416   764268543   340184064   83  Linux
/dev/sda4       764276373   970486649   103105138+  83  Linux

Снимок экрана GParted http://img7.imagebanana.com/img/vqt7wwq6/Screenshotfrom2012052800_04_35.png

Очевидно, я не хочу удалять любые данные, чтобы сделать это. Есть ли какие-либо инструменты, которые способны к этому? Кажется, что, если бы я мог бы записать таблицу разделов на низком уровне, я смог бы выполнить это.Что Вы порекомендуете?

Между прочим, я использую зашифрованный корневой каталог (это $HOME, нет /home), и ранее моя подкачка была зашифрована. Я не знаю, как зашифрованная подкачка настраивается.

3
задан 20 March 2017 в 13:18

2 ответа

Наличие и шифрование / dev / sda3 здесь не помогут. Не существует инструмента, который бы автоматически перемещал разделы на расширенные. Вам нужно будет сделать это вручную, однако хорошая новость заключается в том, что у вас есть только 70 лишних ГБ данных на дом и дополнительные для резервного копирования и восстановления.

Я предлагаю вам сделать резервную копию данных из / dev / sda3 (home) и / dev / sda4 (extra) и удалить разделы. Замечу, что у вас изначально было два раздела подкачки.

После того, как вы сделали резервную копию данных, удалите / dev / sda3 и / dev / sda4 и вместо них создайте один расширенный раздел. Затем вы можете создать разделы для / home, swap и extra, если хотите. Я рекомендую ext4 для / home (не ext3, как в настоящее время) и не шифровать, если у вас там нет действительно конфиденциальных данных. Подумайте, не является ли «лишнее» излишним для ваших нужд.

Использование метки тома в качестве основы для монтирования разделов в fstab, похоже, работает очень хорошо. Это просто вопрос изменения UUID = uuid на LABEL = volume_label в fstab после назначения меток разделов. Это легче сделать вручную и легко изменить позже, так как вам не нужно иметь дело с номерами спагетти uuid. Однако я не уверен, что вы можете назначить имя тома разделу подкачки.

Крис

0
ответ дан 20 March 2017 в 13:18

Вместо того, чтобы вручную редактировать таблицы разделов, вы можете просто воссоздать вашу старую таблицу разделов с помощью gparted и использовать cp -p или dd для копирования старых разделов в новые.

Требования к внешнему хранилищу

То, как вы это сделаете, зависит от ваших возможностей внешнего хранилища. Если у вас есть другой диск, на который можно скопировать разделы, вы должны скопировать основной раздел (ы) в образ (для dd) или каталог (для cp) на внешнем диске, затем создать пустой логический раздел и и скопируйте изображение в этот новый пустой раздел. Это был бы лучший способ идти о вещах.

Чтобы создать резервные копии разделов в виде образов (где sda1 является первым разделом на вашем первом жестком диске):

sudo dd if=/dev/sda1 of=[path to where you want to store the image] bs=1M noerror

Чтобы скопировать разделы в каталог (с сохранением разрешений), сначала смонтируйте их, затем:

sudo mkdir /[path to where you want to store them]/partition-backup1
sudo cp -pr /media/mounted-partition-to-be-copied /[path to where you want to store them]/partition-backup1

См. Ниже для получения дополнительной информации о cp и dd.

Если у вас нет внешнего хранилища

Однако, если у вас недостаточно места / времени для копирования в разделы во внешнее хранилище, вы можете использовать творческое изменение размера / копирование для полного двигаться на том же диске. Другими словами, вы можете изменить размеры разделов с большим количеством свободного места до меньшего размера, чтобы у вас была возможность создать новые повторяющиеся логические разделы, а затем удалить старый и изменить размер после копирования. Вам также потребуется временно сохранить один раздел как изображение внутри другого, чтобы вы могли создать расширенный раздел.

Однако, будьте осторожны, если какой-либо из разделов (/ home, swap и т. Д.) Зашифрован. Если так, было бы очень, очень опасно изменять их размер. Здесь есть руководство по изменению размера зашифрованных разделов , но я бы не рекомендовал делать это, если вы действительно не можете найти какое-либо внешнее хранилище, чтобы избежать этого шага.

Копирование старых первичных разделов в новые логические разделы

Сначала убедитесь, что у вас есть удобный liveCD / USB, вам, вероятно, потребуется переустановить GRUB позже.

Здесь я предполагаю, что вы оценили метод, наиболее подходящий для вас, и теперь создали пустой новый логический раздел и имеете доступ либо к старому первичному разделу, либо к образу раздела, сохраненному извне.

Вы можете использовать cp, который копирует файл за файлом, или dd, который копирует блоки необработанных данных. Для любых зашифрованных разделов вы должны использовать использовать dd. Я лично чувствую, что при правильном использовании dd безопаснее, потому что вам не нужно беспокоиться о разрешениях / владении / символических ссылках / и т.д. Однако, если вы сделаете ошибку, используя dd, вы что-то сломаете.

Чтобы использовать cp: (для незашифрованных разделов) сначала смонтируйте как старую первичную версию раздела, так и новый пустой логический раздел. Скопируйте файлы из старого раздела в новый. Опция -p сохраняет права доступа и владельцев файлов, поэтому вы не путаете ваши разрешения, -r просто копирует рекурсивно. Однако он не может создавать файлы с владельцами с правами, превышающими разрешения того, кто запускает команду, поэтому вы должны запустить эту команду от имени пользователя root.

sudo cp -pr /media/[mounted-old-primary]/ /media/[mounted-empty-logical]/

Это может занять некоторое время.

Чтобы использовать dd: Вы должны быть абсолютно уверены в именах разделов ваших старых и новых разделов. Вы также должны клонировать разделы одинакового размера (или раздел большего размера - на свой страх и риск). Не пытайтесь клонировать раздел, который меньше оригинала. dd перезапишет любое устройство, на которое заказано копирование. Либо используйте графический интерфейс gparted, чтобы получить эти права, либо вы можете запустить sudo fdisk -l, чтобы увидеть таблицу разделов. Как только вы уверены в своих именах, запустите команду dd (для записи каталога на устройства нужно запускать с правами root)

Люди ищут в Google: НЕ запускайте следующие команды, если вы не понимаете, что они делают, и не изменили имена разделов на разделы, которые хотите скопировать / перезаписать

sudo dd if=/dev/sda2 of=/dev/sda6 bs=1M noerror

В этом примере sda2 является исходным основным разделом и sda6 это новый пустой логический раздел. Обязательно проверяйте, правильно ли вы меняли патчи перед каждой операцией.

Если вы копируете из резервной копии изображения, выполните команду, подобную этой:

sudo dd if=/path/to/image.img of=/dev/sda6 bs=1M noerror

Любое из этих действий также займет некоторое время. Вы можете убедиться, что они все еще работают, проверив top и заметив, что различные связанные процессы пускаются в ход.

Очистка

Не удаляйте ничего, пока не убедитесь, что оно скопировано правильно и резервная копия вам больше не понадобится. Тем не менее, как только вы успешно скопировали все в новые логические разделы, вы захотите удалить старые первичные разделы и изменить размер всех разделов так, как вы хотите.

Вы вообще не касались MBR, но если вы переместили раздел с /boot на нем, вам нужно будет переустановить / обновить GRUB, чтобы он указывал на новый раздел.

Переустановите GRUB с liveCD, смонтировав каталог / (замените sda3 тем разделом, который вам нужен)

sudo mount /dev/sda3 /mnt

В этот момент вы можете запустить sudo grub-install --root-directory=/mnt /dev/sda для переустановки grub, но вы бы все еще нужно запустить update-grub из собственной установки (имеется в виду загрузочную загрузку из командной строки GRUB), чтобы обновить файлы конфигурации. Мы можем объединить оба этих шага и использовать chroot, чтобы сделать раздел / файловой системой liveCD /.

(Эта часть в значительной степени основана на https://help.ubuntu.com/community/Grub2/Install )

Монтирует критические виртуальные файловые системы. Выполните следующее как одну команду: for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done

Выполните загрузку на обычном системном устройстве: sudo chroot /mnt

Переустановите GRUB 2:

grub-install /dev/sda

Воссоздайте GRUB 2 файл меню (grub.cfg)

update-grub

Выход из chroot: CTRL + D

Перезагрузка.

sudo reboot
0
ответ дан 20 March 2017 в 13:18

Другие вопросы по тегам:

Похожие вопросы: