В попытке решить проблему с 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
), и ранее моя подкачка была зашифрована. Я не знаю, как зашифрованная подкачка настраивается.
Наличие и шифрование / 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. Однако я не уверен, что вы можете назначить имя тома разделу подкачки.
Крис
Вместо того, чтобы вручную редактировать таблицы разделов, вы можете просто воссоздать вашу старую таблицу разделов с помощью 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 kbd> + D kbd>
Перезагрузка.
blockquote>sudo reboot