mrrc Опубликовано 20 января, 2023 (изменено) · Жалоба Есть виртуалка-стенд, решил расширить один из разделов за счет добавления общего объема жесткого диска. Мануалов в сети хватает, но везде вновь образовавшееся пространство следует ЗА разделом (как правило, единственным в системе) после удаления свапа, размер которого требуется увеличить. В моем случаи разделы имеют следующую структуру и требуемый к увеличению раздел 5. # gpart show da0 => 40 209715120 da0 GPT (100G) 40 1024 1 freebsd-boot (512K) 1064 8388608 2 freebsd-swap (4.0G) 8389672 6291456 3 freebsd-ufs (3.0G) 14681128 2097152 4 freebsd-ufs (1.0G) 16778280 41943040 5 freebsd-ufs (20G) 58721320 20971520 6 freebsd-ufs (10G) 79692840 25164720 7 freebsd-ufs (12G) 104857560 104857600 - free - (50G) # df -h Filesystem Size Used Avail Capacity Mounted on /dev/da0p3 2.9G 244M 2.4G 9% / devfs 1.0K 1.0K 0B 100% /dev /dev/da0p4 992M 8.1M 904M 1% /home /dev/da0p5 19G 14G 3.8G 79% /usr /dev/da0p7 12G 465M 10G 4% /usr2 /dev/da0p6 9.7G 735M 8.2G 8% /var gpart resize работает при наличии свободного места ПОСЛЕ целевой партиции, у меня же она в центре и за ней еще две, которые трогать не нужно. А как делается MOVE-EXIST+FREE? FreeBSD 13.1 Изменено 20 января, 2023 пользователем mrrc Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 20 января, 2023 · Жалоба С помощью стороннего ПО - загружаетесь с флешки или компакт диска и акронисом или чем-то подобным переделываете разделы и переносите. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mrrc Опубликовано 20 января, 2023 · Жалоба @Saab95 это ж на виртуалке, можно конечно присобачить образ загрузочный. Штатных средств ОС разве нет для решения стоящей задачи? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 20 января, 2023 · Жалоба создать второй диск, загрузиться в сингл мод и разметить второй как надо, разделы не изменяемого размера можно ДД, можно dump/restore, изменённые dump/restore и поставить загрузчик. выключиться, первый отцепить, включить и загрузиться. NEWDISK=da1 # елси мы в single mod то mount -o ro /usr mount -o ro /home mount -o ro /var mount -o ro /usr2 # gpart create -s gpt ${NEWDISK} gpart add -a4k -s 512K -t freebsd-boot ${NEWDISK} # 1 gpart add -a4k -s 4G -t freebsd-swap ${NEWDISK} # 2 gpart add -a4k -s 3G -t freebsd-ufs ${NEWDISK} # 3 gpart add -a4k -s 1G -t freebsd-ufs ${NEWDISK} # 4 gpart add -a4k -s 10G -t freebsd-ufs ${NEWDISK} # 5 (was 6) gpart add -a4k -s 12G -t freebsd-ufs ${NEWDISK} # 6 (was 7) gpart add -a4k -t freebsd-ufs ${NEWDISK} # 7 (was 5) # 100% FREE newfs -L root /dev/${NEWDISK}p3 newfs -L home -U -j /dev/${NEWDISK}p4 newfs -L usr2 -U -j /dev/${NEWDISK}p5 newfs -L var -U -j /dev/${NEWDISK}p6 newfs -L usr -U -J /dev/${NEWDISK}p7 mount /dev/${NEWDISK}p3 /mnt cd /mnt dump 0 -f - / | restore -r -f - mount /dev/${NEWDISK}p4 /mnt/home mount /dev/${NEWDISK}p5 /mnt/usr2 mount /dev/${NEWDISK}p6 /mnt/var mount /dev/${NEWDISK}p7 /mnt/usr cd /mnt/home dump 0 -f - /home | restore -r -f - cd /mnt/usr2 dump 0 -f - /usr2 | restore -r -f - cd /mnt/var dump 0 -f - /var | restore -r -f - cd /mnt/usr dump 0 -f - /usr | restore -r -f - sync gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ${NEWDISK} vim /mnt/etc/fstab # тут попарвить цифры на монтирование 7->6 6->5 5->7 или вообще указать лейблы sync ; sync ; sync ; /bin/shutdown -p now тут можно было бы указать старые номера конечно через -i в gpart add но оно потом не шибко удобно, что пятый идёт после седьмого.... можно в будущей попутать чёнить.... на одном диска можно двигать штатными средствами, если свободно больше любого из двигаемых разделов, создаём раздел в конце, копируем туда, удаляем src, повторяем для второго с конца, расширяем нужный... но тут цифры в номерах партиций поедут... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 21 января, 2023 · Жалоба 4 hours ago, st_re said: тут можно было бы указать старые номера конечно через -i в gpart add но оно потом не шибко удобно, что пятый идёт после седьмого.... можно в будущей попутать чёнить.... Писать в fstab всякие da0p1 - прошлый век, есть же давно GPT UUID, фишка которых в том, что они не меняются куда ты диск не вставляй. Ещё label есть несколько разных на уровне фс и уровне геом, для тех кто любит ручками подписывать. 4 hours ago, st_re said: gpart add -s4k -s 3G У вас тут -s два раза, в первом случае должно быть -a. 15 hours ago, mrrc said: Есть виртуалка-стенд, решил расширить один из разделов за счет добавления общего объема жесткого диска. Мануалов в сети хватает, но везде вновь образовавшееся пространство следует ЗА разделом (как правило, единственным в системе) после удаления свапа, размер которого требуется увеличить. В моем случаи разделы имеют следующую структуру и требуемый к увеличению раздел 5. Если свободного места нет сразу за разделом и диск не оч большой то проще создать ещё один диск, подключить к виртуалке, разметить как надо и перетащить систему и данные туда. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 21 января, 2023 · Жалоба 4 минуты назад, Ivan_83 сказал: Писать в fstab всякие da0p1 - прошлый век, есть же давно GPT UUID, фишка которых в том, что они не меняются куда ты диск не вставляй. Ещё label есть несколько разных на уровне фс и уровне геом, для тех кто любит ручками подписывать. ну это само собой, просто когда номера разделов на диске не по порядку, потом снесешь чего не то... но в общем на работу не влияет.. 5 минут назад, Ivan_83 сказал: У вас тут -s два раза, в первом случае должно быть -a. спасибо, список очепяток применил... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mrrc Опубликовано 21 января, 2023 (изменено) · Жалоба 18 часов назад, st_re сказал: newfs /dev/da1p2 -L root newfs /dev/da1p2p4 -L home -U -j newfs /dev/da1p2p5 -L usr2 -U -j newfs /dev/da1p6 -L var -U -j newfs /dev/da1p7 -L usr -U -J Пускаю построчно, скриптом слишком кошерно было бы, если сразу взлетело) Спотыкается, начиная с создания fs на на созданных выше разделах. Ошибка синтаксиса, судя по всему, самый вверх вывода в окне терминала hyper-v не вижу. Изменено 21 января, 2023 пользователем mrrc Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 21 января, 2023 · Жалоба ну да, в ночи писал, аргументы ДО пути надо... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mrrc Опубликовано 21 января, 2023 · Жалоба Верно, отработало newfs -L root /dev/da1p2 Но этим мы создаем свап, судя по создаваемому размеру в 4096.0 MB, а далее вы на нем пытаетесь создать /home с /usr2, выходит.. newfs -L home -U -j /dev/da1p2p4 newfs -L usr2 -U -j /dev/da1p2p5 Нет в системе в /dev устройств таковых da1p2XX, собственно как с da1p3XX, видимо вначале еще и сам / создать надо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 21 января, 2023 · Жалоба 1 hour ago, mrrc said: Но этим мы создаем свап Это просто метки уровня ФС, я их вообще никогда не пишу. 1 hour ago, mrrc said: Нет в системе в /dev устройств таковых da1p2XX И не будет, и не создать их. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 22 января, 2023 · Жалоба gpart add отработали ? должны были появиться разделы ls /dev/da1p[1-7] Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 22 января, 2023 · Жалоба 27 minutes ago, st_re said: ls /dev/da1p[1-7] gpart show же для этого. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mrrc Опубликовано 23 января, 2023 · Жалоба 12 часов назад, st_re сказал: отработали ? должны были появиться разделы ls /dev/da1p[1-7] Конечно. Вы ранее про da1p2p4\da1p2p5 писали, их и не обнаруживалось. root@vm:~ # ls -la /dev | grep da1 crw-r----- 1 root operator 0x64 Jan 23 11:21 da1 crw-r----- 1 root operator 0x6c Jan 23 11:21 da1p1 crw-r----- 1 root operator 0x6d Jan 23 11:21 da1p2 crw-r----- 1 root operator 0x6e Jan 23 11:21 da1p3 crw-r----- 1 root operator 0x6f Jan 23 11:21 da1p4 crw-r----- 1 root operator 0x70 Jan 23 11:21 da1p5 crw-r----- 1 root operator 0x71 Jan 23 11:21 da1p6 crw-r----- 1 root operator 0x72 Jan 23 11:21 da1p7 root@vm:~ # root@vm:~ # gpart show da1 => 40 209715120 da1 GPT (100G) 40 1024 1 freebsd-boot (512K) 1064 8388608 2 freebsd-swap (4.0G) 8389672 6291456 3 freebsd-ufs (3.0G) 14681128 2097152 4 freebsd-ufs (1.0G) 16778280 20971520 5 freebsd-ufs (10G) 37749800 25165824 6 freebsd-ufs (12G) 62915624 146799536 7 freebsd-ufs (70G) gpart add -a4k -s 4G -t freebsd-swap ${NEWDISK} # 2 newfs /dev/${NEWDISK}p2 -L root mount /dev/${NEWDISK}p2 /mnt cd /mnt dump 0 -f - / | restore -r -f - Мне кажется, проблема выше. Мы создаем раздел 2 под свап, далее на нем файловую систему под /root, пытаемся задампить и развернуть туда существующий "/", нет? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 23 января, 2023 · Жалоба да, поправил там, рут -> 3 и порядок аргументы, путь на раздел Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mrrc Опубликовано 23 января, 2023 (изменено) · Жалоба @st_re валимся на отсутствии прав при dump\restore: В 20.01.2023 в 23:50, st_re сказал: dump 0 -f - / | restore -r -f - Изменено 23 января, 2023 пользователем mrrc Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 23 января, 2023 · Жалоба /sbin/mdmfs -s 2048000 auto /tmp (это cltkftn 1Г темп в памяти, если памяти мало, напишите поменьше) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mrrc Опубликовано 23 января, 2023 · Жалоба @st_re да, создание виртуального диска помогло, спасибо. А разве это не 2Gb& /usr растянулся на нужный объем! Интересная вещь получилась после откидывания src и загрузки с dst диска. Продублировалось содержимое /var на /usr2, а с /usr2 на /var. При этом /usr2 получился копией /var, за исключением несколько папок из /var, которые отсутствуют на последнем. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 23 января, 2023 · Жалоба /etc/fstab поправили с в соответствии с новыми цифрами у разделов ? там у меня было vim /mnt/etc/fstab /dev/da0p5 /usr2 /dev/da0p6 /var /dev/da0p7 /usr Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mrrc Опубликовано 24 января, 2023 · Жалоба Конечно, только 5 и 6 попутались, я прочел как: 7 на 6, 6 на 5, 5 на 7. Еще ж получается, что и dump\restore мы развернули с src-диска из /var сразу на два раздела в dst, раз они зазеркалились? В 20.01.2023 в 23:50, st_re сказал: # тут попарвить цифры на монтирование 7->6 6->5 5->7 В общем для чистоты эксперимента я еще раз проделаю с ноля процедуру. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 24 января, 2023 · Жалоба развернули туда, куда смонтировали там сначала монтируется только корень в /mnt и делается дамп старого корня и рестор в текущую директорию тут заодно создались точки монтирования под остальные разделы, они все скопом монтируются и дальше cd в соотв диру, и дамп - рестор. по крайней мере у меня я не вижу, где бы cd не соответствовал источнику дампа следом (тут dump читает текущий /etc/fstab) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mrrc Опубликовано 24 января, 2023 (изменено) · Жалоба @st_re в общем попробовал воспроизвести процедуру по порядку еще раз на чистую с ноля, получил тот же самый эффект с миксом содержимого между /usr2 и /var, и вроде все прозрачно по порядку и внимательности, но где-то парадигма дает сбой) Собственно это уже спортивный интерес был, т.к. все это тестовый стенд в первую очередь, и целевая задача с расширением /usr в любой случае решена и столь детальная практика по вопросу от вас принята, за что большая благодарность. Не могу не задать такой вопрос - в свое время для резервирования дисков целиком под фрей (как правило от аппаратного выхода из строя, так и поломки логики фс) безотказно выручала простая портовая утилита sysutils/clonehdd на перле, использующая процедуры DUMP\RESTORE, с помощью которой было легко клонировались диски один в один. Но она очень давно перестала поддерживаться и на современных системах с GPT разметкой утратила работоспособность. Никаких ее аналогов на данный момент обнаружить не удалось и почему столь простое и эффективное решение никто не подхватил и не актуализировал - непонятно. В ОС существует утилита recoverdisk, но она работает посекторно, соответственно процедура несравнимо долгая, чем при использовании DUMP\RESTORE, в особенности при наличии большого количества "пустоты" на диске. Смогли бы посмотреть, насколько сложно было бы допилить данный инструмент (clonehdd) для унифицированного применения на современных Freebsd? Изменено 24 января, 2023 пользователем mrrc Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 25 января, 2023 · Жалоба 5 hours ago, mrrc said: безотказно выручала простая портовая утилита sysutils/clonehdd на перле, использующая процедуры DUMP\RESTORE, с помощью которой было легко клонировались диски один в один. Клонировать 1в1 - dd .... bs=4m status=progress Клонировать руками - думаю те кто часто это делает просто написали себе скрипты. Лично у меня это относительно редкая необходимость, этап с разметкой я заскриптовал, а дальше у меня rsync всё что нужно копирует. Обновление системы (сборка, установка, очистка) у меня тоже заскриптовано, оно все доп порты пересобирает, которые с ядерными модулями и загрузчики обновляет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jffulcrum Опубликовано 25 января, 2023 · Жалоба 11 часов назад, mrrc сказал: sysutils/clonehdd Вроде у неё есть наследник: https://www.freshports.org/sysutils/clone Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mrrc Опубликовано 25 января, 2023 · Жалоба 1 час назад, jffulcrum сказал: Вроде у неё есть наследник: https://www.freshports.org/sysutils/clone Посмотрел, не совсем очевидные примеры использования, как указать диск-источник и диск-назначение для получения точной копии? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Negator Опубликовано 25 января, 2023 · Жалоба Цитата Писать в fstab всякие da0p1 - прошлый век Надо говорить - устаревшая технология Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...