Я пытаюсь обновить SD-карту моего Raspberry PI на большую. Я видел и пробовал такие руководства:https://raspberrypi.stackexchange.com/questions/499/how-can-i-resize-my-root-partition
Однако моя настройка немного отличается от той, что у них, и мне сложно понять, как это сделать правильно, не уничтожив при этом таблицу разделов.
Вывод fdisk:
Device Boot Start End Sectors Size Id
/dev/mmcblk0p1 8192 2357421 2349230 1.1G e W95 FAT16 (LBA)
/dev/mmcblk0p2 2357422 15523839 13166418 6.3G 85 Linux extended
/dev/mmcblk0p5 2359296 2424829 65534 32M 83 Linux
/dev/mmcblk0p6 2424832 2553855 129024 63M c W95 FAT32 (LBA)
/dev/mmcblk0p7 2555904 14467069 11911166 5.7G 83 Linux
/dev/mmcblk0p8 14467072 15515647 1048576 512M 83 Linux
скриншот gparted:
Может быть, кто-нибудь скажет мне несколько мудрых слов?
решение1
Если у вас есть Gparted, делайте все это с помощью Gparted. Так вам не придется запоминать точные номера или что-то еще. Второй совет: не меняйте местами разделы. Если вы хотите увеличить root
раздел, переместите его data
в конец свободного пространства и увеличивайте root
на месте. Это потому, что вы не можете быть уверены, что нет устаревшего кода, который ссылается на разделы по их номерам.
решение2
Я не вижу никаких проблем, если вы хотите изменить размер корневого раздела. Вам не нужно убивать разделы.
Прежде всего вам нужно изменить размер расширенного раздела /dev/mmcblk0p2
. Вы можете сделать это через Gparted
. Затем переместите /dev/mmcblk0p8
раздел в конец диска. В конце измените размер корневого /dev/mmcblk0p7
раздела на все свободное пространство.
Если вы Gparted
не хотите изменять размер расширенного раздела /dev/mmcblk0p2
(я думаю, потому что он запущен внутри этого раздела), то у вас есть два способа:
- Пересоздайте все разделы от mmcblk0p2 до mmcblk0p8 в программе fdisk.
- Загрузите SystemRescueCD с USB-накопителя на компьютере и попробуйте еще раз использовать GParted на SystemRescueCD.
Будьте осторожны, когда будете использовать обе программы. Программа Fdisk не может перемещать разделы и данные внутри них. Не меняйте начальный сектор загрузочного раздела на /dev/mmcblk0p6
и корневого раздела на /dev/mmcblk0p7
, иначе вы восстановите загрузку установленного Linux.
Если вы выбрали первый способ, то вам нужно запомнить всю информацию обо всех разделах в секторах. Затем удалите mmcblk0p2
раздел. Не записывайте результат на этом этапе, fdisk не применяет изменения немедленно. И если вы выйдете из fdisk
или нажмете Ctrl+C, ничего не изменится. Затем создайте mmcblk0p2
расширенный раздел (нажмите n
, затем нажмите e
) со старым номером начального сектора и новым номером последнего сектора. Затем пересоздайте другие логические разделы (нажмите , n
затем нажмите l
) с /dev/mmcblk0p5
по /dev/mmcblk0p8
со старыми номерами начального и конечного секторов. Измените типы разделов, нажав t
клавишу . Проверьте (нажмите p
), все разделы будут иметь старые номера начального и конечного секторов, а типы исключают номер конечного сектора mmcblk0p2
расширенного раздела. Если все хорошо, то запишите изменения на диск, нажав w
клавишу . Перезагрузите сервер. Затем вы можете использовать , GParted
чтобы переместить последние два раздела в конец диска и изменить размер корневого раздела.
В дополнение:
Если fdisk не хочет пересоздавать разделы, попробуйте использовать parted:
$ sudo parted /dev/mmcblk0
(parted) unit s
(parted) print
(parted) resizepart 2 -1s
(parted) print
(parted) quit
$ sudo partprobe /dev/mmcblk0
$ sudo gparted /dev/mmcblk0
Удачи! И будьте осторожны.
решение3
Вы не можете изменить размер разделов, если они смонтированы. Если вы посмотрите внимательно, то увидите два символа ключа на двух разделах внутри расширенного раздела. Это предотвратит любые изменения разделов.
Существуют различные способы обойти вашу проблему, но вам нужно загрузиться с чего-то другого, чтобы иметь возможность размонтировать все разделы.
Одна из возможностей — подключить карту к отдельной системе с помощью устройства для чтения карт и использовать Gparted для изменения размера любых нужных разделов после размонтирования всех разделов, которые монтируются автоматически.