Главный сайт Нижнего Новгорода: Зарегистрируйся, чтобы общаться, знакомиться, искать друзей и получать подарки!
+2 °C
Погода в Нижнем Новгороде
+2 °C
День 2°C
Вечер -4°C
Завтра -6°C
Подробно
 4
Пробки
4 балла
Местами затруднения
63.5788
Курс USD ЦБ РФ на 11 декабря
63.5788
-0.1456
Все курсы валют
70.3881
Курс EUR ЦБ РФ на 11 декабря
70.3881
-0.1166
Все курсы валют
16+ Городской технический форум: Форум нижегородского IT-сообщества. Вся "околотехника" обсуждается на Технотусе
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
0
Афраний Авторская тема

Как обрезать образ?

Афраний 19 ноября в 20:17 «ответить»
Вы не можете отвечать в этой теме.

Т.к. вы неавторизованы на сайте. Войти.

Качаю образ системы, нарезаю на флешку, ставлю в железку.
Ставлю софт, делаю свои настройки.
Вынимаю флешку, снимаю с неё образ - он получается размером со флешку.
Как обрезать пустое пространство на флешке? То есть открыть образ как файл и обрезать на нужной позицией я и сам могу - напишу прогу на Паскале, она обрежет файл до нужной длины. Как эту нужную длину определить? Учитывая, что разделов на флешке два - boot в формате msdos и родной системный.

Пока гуглю по ключевым словам "shrink image" и "truncate raw image"

Если я после внесения всех изменений запишу на флешку файл с ключевой сигнатурой - он точно в конец занятого места поместится? Можно будет обрезать образ по этой самой сигнатуре?
Четыре пятерки 19 ноября в 20:28 «ответить»
Афраний писал(а)
напишу прогу на Паскале, она обрежет файл до нужной длины.

dd if/off чем не нравится?
Афраний 19 ноября в 20:36 «ответить»
Подробнее можно?
P.S. Железка иных накопителей не имеет и сама не x86-совместимая.
Ебардей Мигалкин 19 ноября в 20:43 «ответить»
в лине команды копирования с блочных девайсов такие есть ?
Афраний 19 ноября в 20:46 «ответить»
dd if/of есть, а про off впервые слышу
А при чём тут линь? Не, во FreeBSD они тоже есть, если что.
Ебардей Мигалкин 19 ноября в 20:42 «ответить»
.
Deathmaker 19 ноября в 20:30 «ответить»
в акронисе за это отвечает селект посекторное/умное копирование. последний вариант "выкидывает" пустые сектора. симантек это делает по умолчанию.
Афраний 19 ноября в 20:37 «ответить»
Я образ не в формате акрониса делать собираюсь.
Мне надо, чтобы человек мог его распаковать и записать на флешку с помощью Win32 Disk Imager
Акронис формат UFS2 понимает?
Yakov-K 19 ноября в 21:57 «ответить»
Афраний писал(а)
Мне надо, чтобы человек мог его распаковать и записать на флешку с помощью Win32 Disk Imager


Я не совсем понял, для чего резать образ? Цель (конечная) какая?
BrainFucker 19 ноября в 22:37 «ответить»
Как я понял, хочет запилить свой дистрибутив на базе FreeBSD для одноплатника и распространять его образ.
Афраний 20 ноября в 00:11 «ответить»
Для облачного сервиса.
Ебардей Мигалкин 19 ноября в 20:41 «ответить»
Образ то какой? raw? iso9660?
Афраний 19 ноября в 20:47 «ответить»
Нет, флешкин. RAW. Перепиленный этот:
download.freebsd.org/ftp/rel...-BANANAPI.img.xz
BrainFucker 19 ноября в 21:10 «ответить»
Делать образ утилитой fsarchiver или аналогичной, например.

А образ, снятый с помощью dd или аналогичным образом, естественно будет иметь размер блочного устройства, содержащий также и удалённые файлы.
Афраний 19 ноября в 21:45 «ответить»
BrainFucker писал(а)
fsarchiver
Посмотрел в вики - он не поддерживает UFS2
В том-то и проблема, что мне придётся снимать целиком образ блочного устройства с двумя разделами и обрезать второй раздел.

Возможно, есть вариант выкусить первый раздел в виде хидера, а затем смержить его со вторым, снятым утилитой dump ?
BrainFucker 19 ноября в 21:48 «ответить»
Афраний писал(а)
В том-то и проблема, что мне придётся снимать целиком образ блочного устройства с двумя разделами и обрезать второй раздел.

А у вас для разделов нет отдельных блочных устройств что ли?
Типа как в нормальной ОС: диску целиком соответствует устройство, например /dev/sda, тогда разделам будут соответствовать устройства /dev/sda1, /dev/sda2 и т.д.
Таким образом, если мне нужен только образ второго раздела, я снимаю его с /dev/sda2.

Алсо, зачем тебе именно образ, можно же просто архив сделать.
Афраний 19 ноября в 22:00 «ответить»
1. Есть. Два раздела: /boot в MSDOSFS и корневой в UFS2
2. Мне надо, чтобы пользователь мог скачать образ, распаковать его, нарезать на флешку и вставить в железку.

У меня флешка на 16 гиг, а пользователь может захотеть использовать на 8 гиг или даже на 4 гига (сам распакованный образ 3 гига занимает)

Железка - banana pi
Блин, даже не знаю, в последнее время есть мысль самостоятельно нарезать и рассылать флешки. ИМХО, это будет даже ещё проще.
BrainFucker 19 ноября в 22:07 «ответить»
Афраний писал(а)
1. Есть. Два раздела: /boot в MSDOSFS и корневой в UFS2

Смешались люди и кони. /boot это точка монтирования, а не файл устройства. Посмотреть какое блочное устройство соответствует примонтированным в данный момент разделам можно командой mount без параметров или хз как там у вас в фрибзд.

У меня флешка на 16 гиг, а пользователь может захотеть использовать на 8 гиг или даже на 4 гига (сам распакованный образ 3 гига занимает)

Ну, как вариант можно просто написать скрипт, который форматирует диск и распаковывает туда архив.
Ебардей Мигалкин 19 ноября в 22:14 «ответить»
BrainFucker писал(а)
Посмотреть какое блочное устройство соответствует примонтированным в данный момент разделам можно командой mount без параметров или хз как там у вас в фрибзд.

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

Command (m for help): p
Disk ./FreeBSD-12.1-RELEASE-arm-armv7-BANANAPI.img: 3 GiB, 3221225472 bytes, 6291456 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
Disklabel type: dos
Disk identifier: 0x00000000

Монтировать руками не дает, может конечно надо флажок какой-то маунту указать дополнительный, хз.

Device Boot Start End Sectors Size Id Type
./FreeBSD-12.1-RELEASE-arm-armv7-BANANAPI.img1 * 2079 104390 102312 50M c W95 FAT32 (LBA)
./FreeBSD-12.1-RELEASE-arm-armv7-BANANAPI.img2 104391 6291431 6187041 3G a5 FreeBSD
Афраний 19 ноября в 22:20 «ответить»
fdisk /dev/mmcsd0 --->
Ебардей Мигалкин 19 ноября в 22:24 «ответить»
Афраний писал(а)
mmcsd0

ну это ты уже флешку воткнул видимо
Афраний 19 ноября в 22:34 «ответить»
Да, это прямо с устройства.
BrainFucker 19 ноября в 22:21 «ответить»
Ебардей Мигалкин писал(а)
там ваще дичь какая то, подозреваю, что образ склеенный из двух образов.

Ну правильно, он образ снял потому что с диска целиком, а не раздела.

Монтировать руками не дает, может конечно надо флажок какой-то маунту указать дополнительный, хз.

Если там именно то что я сказал, то нужно использовать дополнительно losetup перед монтированием.
Афраний 19 ноября в 22:15 «ответить»
1. Я в курсе, лень смотреть было. В аттаче. --->
2. На фиг! Флешка будет у пользователя, он должен иметь возможность сам её записать. Под виндой. Вангую, для её форматирования и распаковки архива понадобится куча UNIX-средств.

Я вообще изначально хотел подогнать скрипт для перепиливания системы по дефолту - после предложений развернуть у клиента ansible я понял, что лучше и проще запилить свой вариант образа.
BrainFucker 19 ноября в 22:22 «ответить»
По снятию образов во фряхе www.wonkity.com/%7Ewblock/docs/html/backup.html
В гугле забанили что ли? :D
Афраний 19 ноября в 22:40 «ответить»
А я спрашиваю не как снимать образ раздела - а как снять образ со всей флешки в таком формате, чтобы потом клиент мог его себе на флешку записать без развёртывания умопомрачительных средств.

Вангую, и простой dd подойдёт, надо только определить конец образа и отсечь его. Всё. Запаковать в xz потом вообще не вопрос.
BrainFucker 19 ноября в 22:43 «ответить»
dd не очень подходящий инструмент. Его можно использовать, но он не оптимален.
Афраний 19 ноября в 22:51 «ответить»
Почему я и задаю вопрос о том, что тут можно сделать.
Есть мысль снять два образа: бутявки и корня, посмотреть, как они расположены в исходном образе (предполагаю, MBR+MSDOS+BSDRoot) и так же склеить их в один.
BrainFucker 19 ноября в 22:54 «ответить»
И результат будет тот же самый, не?
Yakov-K 19 ноября в 23:00 «ответить»
У тебя вроде на скриншоте всё написано.
Оффсет сложи с длиной. Вот и конец образа. Это если я правильно понял, что тебе надо.
Афраний 19 ноября в 23:06 «ответить»
Не совсем, но кажется я понял.
Сначала посмотреть свободное место на флешке в блоках.
Затем вычесть его из объёма флешки в блоках.

И либо снять образ виндовыми средствами и обрезать его, либо сразу помощью DD, задав при этом нужную длину образа.

Так? Спасибо!
Yakov-K 20 ноября в 10:25 «ответить»
Мне кажется, сложить, как я предложил - быстрее.
У тебя же сейчас флэха 16, и на ней занято 3+, разумеется всё строго от начала, гапов нет, всё предельно ясно вроде?

Сложил, получил конечный сектор (это ведь и будет именно блок, как это понимает ДД при работе с блочным устройством - флэшаком? Не блок как кластер файловой системы имеется в виду?), скормишь её ДД, сливаешь.

А обрезать, зная длину - ну если не так часто это будешь делать, то образ HIEW открой или чем-то подобным, там гоу ту адрес (именно в Хью в байтах, так что перед этим на 512 умножишь), потом Truncate. Это если лень возиться с ключами ДД и вальнёшь в образ все 16 гиг.
Афраний 20 ноября в 11:12 «ответить»
Там ДВА раздела, так что надо сложить и MBR, и первый раздел.

Ну и если каждый образ будет свой ID содержать, то да - нечасто. Достаточно иметь один образ и менять в нём номерки перед упаковкой.
Yakov-K 20 ноября в 11:35 «ответить»
В третий раз повторяю - хоть сколько разделов, хоть 8.
У тебя на скриншоте первом, например - ясно написано, что оффсет последнего (второго) раздела - столько-то лба (104391), а длина последнего раздела - столько-то лба. Это ВСЁ, что тебе нужно.

МБР это сектор с разметкой, самый первый (в абсолютной адресации - нулевой), его не надо никуда и ни с чем "складывать".

Ты лучше уточни, как у тебя образ в три гига записался в виде раздела на 16. Три гига это после распаковки, готовый исходный рав образ? Что у него в МБР интересно. Можешь подгрузить в Рстудио, затем View-Edit, слева должен быть темплейт по дефолту - MBR. Не лень если, заскриншоть. Что в темплейте за параметры.
Афраний 20 ноября в 15:08 «ответить»
Флешки часто так пишутся. Нарезается образ, а затем при загрузке размер раздела увеличивается до максимального размера флешки.
Можно взять любой образ флешки и посмотреть. В архиве он вообще 300 метров.
Yakov-K 20 ноября в 19:24 «ответить»
В архиве не важно сколько, это к делу не относится.
И по поводу образов ты что-то не то говоришь - либо что-то недоговариваешь, либо не понимаешь. И мне интересно распутать этот квест с другой стороны. В моём образе, например, всё строго, как и должно быть, всё соответствует.

Расширение раздела - вообще какая-то дичь. Ты представляешь, сколько там тех же метаданных надо переписать или сформировать? Так что всё проще у тебя, скорее всего. Вот этот распакованный образ (исходный, до "нарезания" на произвольную флэшку и, соответственно, ещё без твоих правок) - это просто один файл, около 3 Гиг размером? То есть в нём уже два раздела есть внутри? Ну так сделай скрин того, что я просил выше (винда с Рстудио есть, надеюсь? Если студии нет, качни прям с офсайта, лицуха пока не нужна для скрина того, что нам надо). Либо как-то передай бинку с нулевым сектором этого образа.

Просто интересно разобраться.
Афраний 21 ноября в 03:17 «ответить»
При нарезании образа на флешку если смотреть через Управлении дисками два раздела, общим объёмом 3 гигабайта.
При этом при запуске в устройстве система видит весь объём флешки.

Если вместо FreeBSD использовать Armbian (или что-то подобное, debian-based), то линукс при первом запуске задаёт прямой вопрос о расширении раздела.

И Вы забываете: метаданные для разных файловых систем - разные. К слову, расширять разделы и винда умеет, так что не вижу ничего необычного.
Yakov-K 21 ноября в 11:34 «ответить»
Можно "на ты".
Я не говорил, что это необычно. Я просто не совсем понимаю, зачем это по умолчанию делать - расширять. Если я нарезал образ 3 Гига на 16 Гиг флэху - никому не должно быть дела, что с 3 до 16 - свободное место в воздухе висит. Пока я сам не захочу с этим что-то "сделать". Но оставим это - возможно, в мире UNIX мыслят по-другому, пусть.

К чему пришли? Можешь не расширять при старте? Отрицательно ответить на предложение, то бишь. Или система сама расширяет и ты даже не знаешь, как отменить этот дефолтный процесс? Если последнее - вот именно это для меня и есть дичь :)
Дальше уже, надеюсь, сам догадался. Если всё оставить как есть, то складываешь оффсет с длиной и получаешь адрес первого неиспользуемого сектора на носителе (или в образе, если целиком с 16 гиг флэхи его снять). Далее в HIEW 3 секунды (или чуть больше секунд в WinHex) - и всё. И темы бы этой, возможно, не было :)

P.S. А, собственно, зачем что-то складывать. Длину образа видишь - вот оно. Разумеется, образ кладём без извратов, просто посекторным копированием в нулевой офсет приёмника (флэшки).
Афраний 21 ноября в 12:05 «ответить»
1. Я хочу расширять. Поскольку дефолтовый образ допиливается, ставятся пакаджи, да и место для данных нужно.
Фря расширяет, не спрашивая.
Линукс спрашивает, но на сколько расширить - указать возможности нет. По дефолту расширяемый раздел занимает всё свободное место на флешке.
2. Меня устраивает тот факт, что он расширяет место. Мне надо пересобрать образ, но я не в курсе, какой размер будет у флешек, которые будут использовать клиенты.
3. Вроде как объём поддерживаемой железкой флешек ограничен. Я не уверен, допустим, что та же бананка или апельсинка прочтут флешку на 64 или 128 гиг.

продолжение темы »
GPRSnik 19 ноября в 22:17 «ответить»
может быть для начала очистить всё пустое место в образе (заполнить его нолями) через winhex, потом он будет сжиматься значительно лучше?
потом сделать образ опять им же через create disk image c опцией пропустить пустые сектора... -не пробовал :) www.google.com/search?q=winhex%20skip%20and%20omit%20free
Афраний 19 ноября в 22:22 «ответить»
Это - НЕ ПРОБЛЕМА. Проблема - определить, ГДЕ в образе начинается пустое место.
GPRSnik 19 ноября в 22:24 «ответить»
ты открой для начала winhex, он сам это определяет
Афраний 19 ноября в 22:44 «ответить»
А ты это с каким образом делал? С тем, что я по ссылке указал? Он UFS2 понимает?
GPRSnik 19 ноября в 22:47 «ответить»
делал с dd и натуральным диском. если ддшный так очистить, то потом конверть его куда хочешь...
Афраний 19 ноября в 22:52 «ответить»
Блин, лицуху хочет.

Понял, спасибо, попробую.
BrainFucker 19 ноября в 23:19 «ответить»
А цели системы-то какие? Если после разворачивания на одноплатнике модификация системы пользователем не планируется (доустановка ПО или онлайн обновление, например), то просто создаёшь образ, который содержит всё что нужно без свободного места и всё.

После разворачивания можно уже оттуда выполнить автоматически донастройку, например на свободном месте диска, если есть, добавить ещё раздел и включить автомонтирование. Ну или можно расширить раздел до границ диска уже оттуда.
Афраний 19 ноября в 23:27 «ответить»
ПОЛЬЗОВАТЕЛЕМ - не планируется. Точнее, напрямую не планируется.
Доустановка ПО - однозначно нет. Онлайн обновление - крайне нежелательно (пока не тестировано, в продакшене использовать нельзя).

Просто после развёртывания коробочки она регистрируется в облаке и принимает настройки из интернета.
Пользователь регистрируется на сайте и указывает необходимые ему службы.
Коробочка получает из облака данные и развёртывает эти службы.

P.S. Если быть более точным, образ системы пользователь получает только после регистрации на сайте; есть мнение, что в каждый образ следует прошивать уникальный номер, связанный с конкретным клиентом.
BrainFucker 19 ноября в 23:37 «ответить»
Ну и в чём проблема-то? Ты автор образа, добавь туда в автозапуск скрипт одноразовый, кторый после первого запуска системы делает донастройку нужную, в том числе и можно расширить раздел до границ диска и в случае успеха убирает себя из автозапуска.

Как создать минимальный образ: смотришь сколько места занимает система на девелоперской инсталляции, создаёшь новый образ такого размера, монтируешь, копируешь туда систему.
Афраний 19 ноября в 23:51 «ответить»
Это я сделаю без вопросов, весь вопрос был только в том, как допилить оригинальный образ без увеличения его объёма с трёх гигабайт до шестнадцати.

P.S. Посмотрел сейчас цены на SD-флешки: разница между 8 и 16 гигами минимальна. Типа 170 и 177 рублей.
Афраний 19 ноября в 23:55 «ответить»
BrainFucker писал(а)
Как создать минимальный образ: смотришь сколько места занимает система на девелоперской инсталляции, создаёшь новый образ такого размера, монтируешь, копируешь туда систему.
Ёк-макарёк! Спасибо.
Я ведь действительно могу создать новый образ - на флешке места нет, ну так смонтировать NFS не проблема. И да, тем же dump перелить систему в новый образ - тоже не вопрос.

Всё что нужно - две фри: одна - сервер NFS в виртуалке, вторая на девайсе.
zormax 20 ноября в 08:10 «ответить»
еще как вариант, давишь жабу, покупаешь флешку на 4, обрезаешь до 3,5 на нее свой образ, с неё образ для распространения, уж как ты грил, если у чела 4 гига флешка, то всяко влезет
McLane 20 ноября в 14:48 «ответить»
как уже написали делаешь изначально нужный размер. снимаешь образ по разделам, а не целиком флешку.
а на винде можно rufus, norton ghost .... etc утилитами развернуть ( хошь с инструкцией в картинках, хошь батником с ключами)
Афраний 20 ноября в 16:08 «ответить»
Есть нюанс. Ни одна утилита не может уменьшать размер раздела FreeBSD.
Только создавать заново.

А нужный размер до того, как перепилишь - неизвестен.
Мозго.б предложил единственно верное решение: создавать образ с разделом нужного размера и лить в него с флешки дампом.
McLane 21 ноября в 09:14 «ответить»
таки да. и я о том же
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
Список тем
Последние темы форумов
Форум Тема (Автор) Последний ответ Ответов
Ноутбук Asus

Продам ноутбук Asus k53sj в хорошем состоянии, процессор i3 видеокарта-1 GB, Оперативная память-8GB, недавно менялась термопаста и...
Цена: 14 000 руб.

Купим лицензионное ПО от Майкрософт в странах СНГ, дорого

Купим оперативно и дорого лицензионное программное обеспечение (софт, soft), произведенное компанией Microsoft (Майкрософт). Windows 7,...
Цена: 10 000 руб.

Моноблок Acer Veriton Z280G Windows 7 pro(лицензионная).

Veriton Z280G совмещает в себе функциональные возможности компьютера и монитора в одном компактном 18,5``корпусе. Вот лишь малая часть...
Цена: 6 000 руб.

Жесткий диск hdd ide seagate st380011a

Рабочий жесткий диск hdd ide seagate st380011a
Цена: 450 руб.