измените размер раздела начальной загрузки ext4 / с помощью соединения SSH на VM

У меня есть Виртуальная машина Ubuntu 19.04, и я соединяюсь с нею ssh.

Я должен изменить размер раздела начальной загрузки.

# fdisk -l
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
Disk model: QEMU HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc59d8598

Device     Boot  Start       End   Sectors   Size Id Type
/dev/sda1  *      2048    487423    485376   237M 83 Linux
/dev/sda2       487424 629143551 628656128 299.8G 83 Linux

Я люблю изменять размер sda1 к 1024M и не могу использовать живой CD.
на моем VM я - пользователь root.

Я думаю, что должен изменить размер корневого раздела sda2 и переместить его вперед и затем изменить размер sda1.

Нуждаюсь в небольшой помощи, чтобы сделать эту операцию.

Я не имею, находят любой вопрос как мой: только пример на одном корневом разделе (sda2) и без потребности переместиться это делает пространство к разделу начальной загрузки (sda1)

можно ли помочь?

с уважением,
Leonardo

P.S. Я не имею к потерянным данным по разделу :-)

Обновление

Я обнаруживаю, что мой поставщик позволил мне запустить системный спасательный CD на своем vm, таким образом, у меня есть весь vm размонтированный раздел, но я нахожусь в командной строке.

Я могу сделать задание теперь?

0
задан 7 November 2019 в 20:42

1 ответ

Я имею, успешно изменяют размер / раздела начальной загрузки, увеличивают его и корневой раздел уменьшения на Виртуальной машине с помощью соединения SSH.

У меня есть/dev/sda1 (/начальная загрузка)
и/dev/sda2 (/) корень

Сначала должен загрузиться на некоторых, любят живой CD. Мой поставщик позволил мне использовать систему начальной загрузки системного спасательного CD. Таким образом на моем поставщике vps панель управления у меня есть опция загрузиться в системном спасательном CD и после того, как я делаю я могу соединиться с ним ssh в том же IP моего vps.

Прежде чем я сделаю это на своем хосте, я делаю:
$ mv /home/<username>/.ssh/known_hosts /home/<username>/.ssh/known_hosts.bak
для предотвращения моей системы пытаются соединиться с удаленным хостом с помощью rsa сертификат.

В задании конца я делаю $ mv /home/<username>/.ssh/known_hosts.bak /home/<username>/.ssh/known_hosts
восстановить предыдущее поведение.

  1. Я соединяюсь в ssh с системным спасательным CD
  2. Я проверяю, что мой раздел не был монтированием
    # umonunt /dev/sda1
    # umonunt /dev/sda2
    система говорит мне, что они не смонтированы.
  3. # e2fsck -f /dev/sda2 проверять фс
  4. мой sda2 составляет самых пустых 300 ГБ. Я изменяю размер его к 200 ГБ:
    # resize2fs /dev/sda2 200G (уменьшение)
  5. предыдущая команда имеет вывод как ... The filesystem on /dev/sda2 is now xxxxx (4k) blocks long. ... где xxxxx является числом. Вы имеете к нескольким xxxxx * 4, чтобы получить yyyyy новый размер в k и помнить это
  6. теперь я должен установить таблицу разделов:
    1. # fdisk /dev/sda (тип m для справки)
    2. активная команда d (удаляют раздел),
    3. выберите 2 раздела
    4. активная команда n (создают раздел),
    5. выберите p (основной раздел)
    6. избранный первый сектор: выберите значение по умолчанию (тот же из прежде)
    7. выбор последний сектор: +yyyyyk (если yyyyy 3746596, выбирают +3746596k) отмечают + и k
    8. затем это спрашивает Вас: Partition #2 contains a ext4 signature Do you want to remove the signature? [Y]es/[N]o:
      выберите n (иначе, он удаляет все Ваши данные, которые я предполагаю),
    9. активируйте команду w для записи нового раздела на диске

Теперь необходимо переместить корневой раздел направо.

Необходимо определить a new_start_sector перемещаться.
# fdisk -l
и получите последний сектор/dev/sda1 (/, раздел начальной загрузки) выдвигают гипотезу число zzz
сделайте 1024*1024*1024/512 и получите одного ГБ в секторе и добавьте к zzz для получения a new_start_sector (zzz + (1024*1024*1024/512))

сделайте сценарий удара как это:

#!/bin/sh
partition=/dev/sda2
disk=/dev/sda
sector_size=512
new_start_sector=2584575
exit 1 # drop this line exit 1 after you have change 2584575 using zzz calculate before by you
# opos is right after the new partition and given in bytes
opos=$(($new_start_sector * $sector_size + `blockdev --getsize64 $partition`))
echo "doing dd_rescue -v -r -S $opos $partition $disk"
dd_rescue -v -r -S $opos $partition $disk

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

  1. # fdisk /dev/sda (тип m для справки)
    1. активная команда d (удаляют раздел),
    2. выберите 2 раздела
    3. активная команда n (создают раздел),
    4. выберите p (основной раздел)
    5. избранный первый сектор: выбрать new_start_sector определенный прежде
    6. выбор последний сектор: выберите значение по умолчанию (продержитесь доступный),
    7. затем это спрашивает Вас: Partition #2 contains a ext4 signature Do you want to remove the signature? [Y]es/[N]o:
      выберите n (иначе, он удаляет все Ваши данные, которые я предполагаю),
    8. активируйте команду w для записи нового раздела на диске

Теперь измените размер корневого раздела:
# e2fsck -f /dev/sda2 проверять фс
# resize2fs /dev/sda2

Теперь удалите раздел начальной загрузки и сделайте его больше:

  1. # fdisk /dev/sda (тип m для справки)
    1. активная команда d (удаляют раздел),
    2. выберите 1 раздел
    3. активная команда n (создают раздел),
    4. выберите p (основной раздел)
    5. избранный первый сектор: выберите значение по умолчанию
    6. выбор последний сектор: выбрать new_start_sector - 1
    7. затем это спрашивает Вас: Partition #1 contains a ext4 signature Do you want to remove the signature? [Y]es/[N]o:
      выберите n (иначе, он удаляет все Ваши данные, которые я предполагаю),
    8. выберите команду (для создания раздела 1 загрузочным)
    9. выберите 1 раздел
    10. активируйте команду w для записи нового раздела на диске

Теперь измените размер раздела начальной загрузки:
# e2fsck -f /dev/sda1 проверять фс
# resize2fs /dev/sda1

Я перезапустил, и все были в порядке.
Я делаю эту команду на системном спасательном CD, и при перезапуске всей истории не стало так, я пытаюсь помнить все для записи там.
Будьте осторожны, вычисляют сектор и байт для использования в моем примере.

Весь этот пример сделан поиском на Google различные решения
один
два
три
и больше...

помните?
$ mv /home/<username>/.ssh/known_hosts.bak /home/<username>/.ssh/known_hosts

с уважением,
Leonardo

0
ответ дан 22 December 2019 в 00:03

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

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