Для сломанных систем несколько лет назад я использовал приведенный ниже сценарий. Если вы сможете заставить работать '/usr/bin/ar' (из binutils), остальное не должно быть большой проблемой (хотя это не самый лучший написанный кусок кода...), как и другие программы, которые, надеюсь, есть на стандартных системах.
DISCLAIMER: вы всегда должны проверять извлеченный файл data.tar вручную перед запуском скрипта, так как ist может перезаписать важные файлы, если вам не повезет.
#!/bin/sh
#
# Try to install given package name without apt or similar helpers.
# It's a kind of 'quick and dirty' but usefull if system broke down.
#
TMPBASEPATH=~/.tmp
TMPPATH=$TMPBASEPATH/$2
echo;echo -=] Please start this script in a directory with rights to write
echo -=] with the path of the .deb file which should be installed as first
echo -=] and the name \(only the name without \'.deb\'\) of the .deb file as
echo -=] second argument.
echo -=] Sample:
echo -=] \'$0 /cdrom/pool/main/a/apt apt_0.5.4_i386\'
echo; echo -=] First argument has been: \'$1\'
echo -=] Second argument has been: \'$2\'
echo -=] Trying to install \'$1/$2.deb\'
echo; echo -=] Creating directory \'$TMPPATH\'
mkdir $TMPPATH -p
echo -=] Copying \'$1/$2.deb\' to \'$TMPPATH\'
cp $1/$2.deb $TMPPATH
echo -=] Unpacking from Debian archive \'$TMPPATH/$2.deb\'
ar xv $TMPPATH/$2.deb data.tar.gz
echo -=] Unpacking from gzip archive \'./data.tar.gz\'
gunzip ./data.tar.gz -v
echo -=] Moving \'./data.tar\' to directory \'/\'
mv ./data.tar /$2.tar
echo -=] Entering directory \'/\'
cd /
echo -=] Unpacking tar archive \'/$2.tar\'
tar -xvf /$2.tar
echo; echo -=] Removing \'/$2.tar\'
rm /$2.tar
echo -=] All done!
echo
Сначала вам нужно изменить размер фактического раздела xvda1
, например. с parted
. Поскольку xvda2
мешает, вам нужно отключить его (swapoff /dev/xvda2
), затем удалить или переместить во время -процесса разбиения, и -заново создать его, если он был удален, и повторно -включить обмен потом при желании. Как только xvda2
больше не располагается сразу после xvda1
, parted
должен просто позволить вам изменить размер xvda1
, чтобы заполнить свободное пространство между ними.
Что касается того, как использовать parted
, вы обычно хотите начать с print
, чтобы показать текущее состояние таблицы разделов. Если вы хотите переместить xvda2
, , просто запустите . Перемещение было удалено в более поздних версиях move 2
и, глядя на числа из таблицы разделов, введите новые начальную и конечную позиции для раздела parted
. ], поэтому просто удалите раздел 2. После этого используйте resizepart 1
, чтобы изменить размер раздела 1 до желаемого окончательного размера. Если вы оставили свободное место после раздела 1, вы можете воссоздать xvda2
, запустив mkpart
, чтобы создать новый раздел.
В этот момент вам следует перезагрузиться, чтобы обновить таблицу разделов.
После этого, если предположить, что раздел на /dev/xvda1
является ext2, ext3 или ext4, запуск resize2fs /dev/xvda1
от имени пользователя root автоматически изменит размер раздела до максимально возможного. Для других типов разделов живое изменение размера может быть или не быть возможным -, например, с btrfs вы должны использовать btrfs filesystem resize max /
для живого -изменения размера файловой системы, смонтированной в /
, до максимально доступного размера.