1. Разметить флэшкуНа всё пространство:
fdisk -BI /dev/da0Интерактивно разбить на разделы:
fdisk -i /dev/da0
(ID разделов: UFS - 165, FAT32 - 11, EFI GPT - 238)Используя конфиг-файл:
fdisk -f /poat/to/fdiskcofig.txt /dev/da02. Форматирование
MSDOS:
newfs_msdos -L DOS7 /dev/da0s1FreeBSD:
bsdlabel -w -B da0s2 && newfs -n -U -L FBSD /dev/da0s23. Установка загрузчика в MBR флэшки
boot0cfg -v -B -o noupdate da0
4. Перенос системных каталогов на флэшку
mount /dev/da0s2 /mnt
cp -R /bin /mnt/
cp -R /boot /mnt/
cp -R /etc /mnt/
cp -R /lib /mnt/
cp -R /libexec /mnt/
cp -R /sbin /mnt/
mkdir -p /mnt/usr/
cp -R /usr/bin /mnt/usr/
cp -R /usr/compat /mnt/usr/
cp -R /usr/games /mnt/usr/
cp -R /usr/include /mnt/usr/
cp -R /usr/lib /mnt/usr/
cp -R /usr/libdata /mnt/usr/
cp -R /usr/libexec /mnt/usr/
cp -R /usr/local /mnt/usr/
cp -R /usr/ports /mnt/usr/
cp -R /usr/sbin /mnt/usr/
cp -R /usr/share /mnt/usr/
cp -R /usr/src /mnt/usr/
cp -R /var /mnt/
rm -rf /mnt/var/tmp/* && chmod -R 777 /mnt/var/tmp/
rm -rf /mnt/var/run/*
rm -rf /mnt/var/log/*mkdir -p /mnt/mnt/
mkdir -p /mnt/media/
mkdir -p /mnt/cdrom/
mkdir -p /mnt/dev/
mkdir -p /mnt/proc/
mkdir -p /mnt/tmp/ && chmod -R 777 /mnt/tmp/
mkdir -p /mnt/usr/obj/5. Обеспечение загрузки с флэшки
echo 'geom_label_load="YES"' >> /mnt/boot/loader.conf
echo 'ifconfig_DEFAULT="DHCP"' >> /mnt/etc/rc.conf
echo 'virecover_enable="NO"' >> /mnt/etc/rc.conf
vi /mnt/etc/fstab:# Device Mountpoint FStype Options Dump Pass#
#/dev/ad4s1f /usr ufs rw,noatime 2 2
#/dev/ad4s1g /home ufs rw,noatime 2 2
/dev/ufs/FBSD / ufs rw,noatime 1 1
md /tmp mfs rw,-s160M,noatime 0 0
md /var/run mfs rw,-s14M,noatime 0 0
md /var/log mfs rw,-s26M,noatime 0 0
#md /usr/obj mfs rw,-s900M,noatime 0 0
/dev/acd0 /cdrom cd9660 ro,noauto,-CUTF-8 0 0
/dev/da0s1 /mnt msdosfs rw,noauto,-D=CP1251,-L=ru_RU.UTF-8 0 0
/proc /proc procfs rw,noauto 0 0
/tmp /var/tmp nullfs rw 0 06. Перезагрузка
umount /mnt/
reboot
URL: http://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi?az=sh...
Обсуждается: http://www.opennet.me/tips/info/1849.shtml
*Написанное внесено в правку статьи*
BSDM какое-то - список команд на 2 страницы.Пи%@*ц...>Не все флэшки поддерживают таблицу разделов (MBR).
Практически все то что обычно понимают под термином "флешки" - прекрасно ее поддерживают.Просто некоторые флешки изначально отформачены как "жесткий диск" а некоторые - как "большая дискета".На тех которые "как дискета" сразу с места в карьер начинается логический диск.Один.А таблицы разделов банально нет.Если кто не понял - ее надо там сначала создать в таком случае, если она вам конечно там нужна и вы хотите более 1 раздела.На уровне физики флешке глубоко пофигу хранить ли в первом секторе бутсектор тома или бутсектор с таблицей разделов.Что запишете туда - то и поюзаете.В принципе так и дискету можно сделать с партициями, если уж делать совсем нефиг.
>Попадаются такие, на которых невозможно создать два и более DOS-разделов
Пионерам привет.Мозг включите и создайте сперва таблицу разделов на флешке отформаченой как "дискета" если вам на ней несколько разделов надо.Ну да, запись MBR - это сложная технгическая операция, пионерам от BSDMа видимо недоступная.Интересно, а как вы нулевые харды размечаете, красавцы?
>(слайсов FreeBSD), но можно создать только
>один раздел.Вообще-то это называется не раздел а логический диск.Потому что в случае форматирования "большая дискета" нет собственно таблицы разделов.Сразу начинается логический диск.
>Иногда ошибки в геометрии разделов
Очень интересно - какая у флешки геометрия по факту, да :D
>>Попадаются такие, на которых невозможно создать два и более DOS-разделов
>
>Пионерам привет.Мозг включите и создайте сперва таблицу разделов на флешке отформаченой как
>"дискета" если вам на ней несколько разделов надо.Я в курсе.
Пионеры просто не знают тонких моментов и ещё не наступали на грабельки от производителей флэшек.Apacer AH320 16Gb: ни в какую не создаётся второй раздел. MBR инициализирована.
>>(слайсов FreeBSD), но можно создать только
>>один раздел.
>
>Вообще-то это называется не раздел а логический диск.Потому что в случае форматирования
>"большая дискета" нет собственно таблицы разделов.Сразу начинается логический диск.Да, таблицы разделов у большой дискеты нет. В терминах FreeBSD получается именно раздел.
>>Иногда ошибки в геометрии разделов
>
>Очень интересно - какая у флешки геометрия по факту, да :DТакая (Apacer AH320 16Gb):
% fdisk /dev/da0
******* Working on device /dev/da0 *******
parameters extracted from in-core disklabel are:
cylinders=1949 heads=255 sectors/track=63 (16065 blks/cyl)Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=1949 heads=255 sectors/track=63 (16065 blks/cyl)Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 12 (0x0c),(DOS or Windows 95 with 32 bit FAT (LBA))
start 63, size 31326145 (15295 Meg), flag 0
beg: cyl 0/ head 1/ sector 1;
end: cyl 924/ head 254/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
>Я в курсе.
>Пионеры просто не знают тонких моментов и ещё не наступали на грабельки
>от производителей флэшек.Претендуете на гуру?Тогда все просто.Докажите что вы спец.Приветствуются ваши версии того что происходит - как системному гуру вам должно быть раз плюнуть описать происходящее.Ну вот и расскажите исходя из ваших познаний о usb, mass storage, флешах и прочей системной механике как производитель флешки может обломать там создание разделов.А я охотно послушаю.
P.S. лично я знаю один метод, но это не ваш случай, потому что в юсб-флешках данная технология не используется.Бывает так что фат - эмулируется контроллером поверх самопальной ФС которая размазывает записи.При этом фат - не настоящий, он на лету строится и транслируется из того что есть по факту.Но при такой архитектуре вы вообще не сможете даже тип файловой системы с FAT на что-то еще изменить.Потому что контроллер не умеет ничего кроме фата изображать.В обычных юсб-флешках данный вид извращений не встречается насколько я знаю.
>Apacer AH320 16Gb: ни в какую не создаётся второй раздел. MBR инициализирована.
Есть подозрение что вас водит за нос или ваша система или используемый вами инструментарий.До того как делать глубокие выводы хорошо бы попробовать несколько других систем (например, Linux и Windows) и несколько разных программ.А то и просто вручную записать в бутсектор данные самолично и перепроверить что именно так оно и прописалось (а то если драйвер юсб глюкавый это еще и не факт).
>Да, таблицы разделов у большой дискеты нет. В терминах FreeBSD получается именно
>раздел.Мне пополам кто там это как называет.Это логический диск, начинающийся с бутсектора (в котором только загрузчик без таблицы разделов).Можно его хоть горшком называть.При том - я бы проверил что при попытке создать там таблицу разделов не осталось мусора из бутсектора диска особенно в полях описывающих разделы.А то может башню срывает?В общем не вижу разумного объяснения невозможности создать 2 раздела на флешке.
>Такая (Apacer AH320 16Gb):
Да, я представил себе флешку с цилиндрами и головками ;)
А если серьезно - что-то смущают надписи про bios.А что, bsd юзает bios для определения параметра usb-диска?И есть уверенность что bios там еще и не лажается?Такое подозрение что вас где-то надули с параметрами разделов или тулзы или система у вас барахлят.
>>Такая (Apacer AH320 16Gb):
>
>Да, я представил себе флешку с цилиндрами и головками ;)
>
>А если серьезно - что-то смущают надписи про bios.А что, bsd юзает
>bios для определения параметра usb-диска?И есть уверенность что bios там еще
>и не лажается?Такое подозрение что вас где-то надули с параметрами разделов
>или тулзы или система у вас барахлят.Да всё обошлось после "забития" устройства нулями из /dev/zero.
И MBR'ы нормально вкорячились на обоих носителях, и разделы тоже нормально разметились. ;)
>Да всё обошлось после "забития" устройства нулями из /dev/zero.Ну вот видите - все просто.Тулзы у вас видимо глючные слегка.Или операционка дурит.Это вы уж сами там в деталях отлавливайте кто там лажается при мусоре в бутсекторе если оно вам надо.
>И MBR'ы нормально вкорячились на обоих носителях, и разделы тоже нормально разметились.
Ну вот, а вы тут мифологию развели.Неспортивно однако.За что я и настучал вам критикой по башке слегка.А на будущее - до того как делать столь масштабные выводы о чем-то советую проверять в разных системах и разными утилитами.А если мозга хватает - то можно и просто скроить подходящий сектор в хексэдиторе попытаться записать его (чем меньше глючных сложных утилит участвует в процессе - тем проще отловить проблему).
>[оверквотинг удален]
>Практически все то что обычно понимают под термином "флешки" - прекрасно ее
>поддерживают.Просто некоторые флешки изначально отформачены как "жесткий диск" а некоторые -
>как "большая дискета".На тех которые "как дискета" сразу с места в
>карьер начинается логический диск.Один.А таблицы разделов банально нет.Если кто не понял
>- ее надо там сначала создать в таком случае, если она
>вам конечно там нужна и вы хотите более 1 раздела.На уровне
>физики флешке глубоко пофигу хранить ли в первом секторе бутсектор тома
>или бутсектор с таблицей разделов.Что запишете туда - то и поюзаете.В
>принципе так и дискету можно сделать с партициями, если уж делать
>совсем нефиг.Вот та же флэшка Apacer AH320 16Gb, размеченная и отформатированная:
% dmesg
...
umass0: <USB FLASH DRIVE, class 0/0, rev 2.00/11.00, addr 2> on uhub1
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <USB FLASH DRIVE 1100> Removable Direct Access SCSI-0 device
da0: 40.000MB/s transfers
da0: 15296MB (31326208 512 byte sectors: 255H 63S/T 1949C)
GEOM_LABEL: Label for provider da0s1 is msdosfs/DOS7.
GEOM_LABEL: Label for provider da0s2 is ufs/FBSD.Структура разметки:
% fdisk /dev/da0
******* Working on device /dev/da0 *******
parameters extracted from in-core disklabel are:
cylinders=1949 heads=255 sectors/track=63 (16065 blks/cyl)Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=1949 heads=255 sectors/track=63 (16065 blks/cyl)Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 11 (0x0b),(DOS or Windows 95 with 32 bit FAT)
start 63, size 2040192 (996 Meg), flag 0
beg: cyl 0/ head 1/ sector 1;
end: cyl 126/ head 254/ sector 63
The data for partition 2 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 2041200, size 8288595 (4047 Meg), flag 80 (active)
beg: cyl 127/ head 15/ sector 1;
end: cyl 642/ head 254/ sector 63
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>% mount_msdosfs -D 866 /dev/da0s1 /media
% ls -all -h /media
total 691678
drwxr-xr-x 1 root wheel 4,0K 1 янв 1980 .
drwxr-xr-x 20 root wheel 512B 26 ноя 02:02 ..
-rwxr-xr-x 1 root wheel 675M 30 мар 2007 Уимблдон.avi
- удостоверяемся, что что-то на разделе с FAT32 есть.
% umount /dev/da0s1% mount /dev/da0s2 /mnt
% ls -all -h /mnt
total 38
drwxr-xr-x 17 root wheel 512B 26 ноя 01:57 .
drwxr-xr-x 20 root wheel 512B 26 ноя 02:02 ..
drwxr-xr-x 2 root wheel 1,0K 26 ноя 01:24 bin
drwxr-xr-x 8 root wheel 1,0K 26 ноя 01:26 boot
drwxr-xr-x 2 root wheel 512B 26 ноя 01:56 cdrom
drwxr-xr-x 2 root wheel 512B 26 ноя 01:56 dev
drwxr-xr-x 20 root wheel 2,5K 26 ноя 01:26 etc
drwxr-xr-x 3 root wheel 1,5K 26 ноя 01:26 lib
drwxr-xr-x 2 root wheel 512B 26 ноя 01:26 libexec
drwxr-xr-x 2 root wheel 512B 26 ноя 01:56 media
drwxr-xr-x 2 root wheel 512B 26 ноя 01:56 mnt
drwxr-xr-x 2 root wheel 512B 26 ноя 01:56 proc
drwxr-xr-x 18 root wheel 512B 26 ноя 01:57 root
drwxr-xr-x 2 root wheel 2,5K 26 ноя 01:27 sbin
drwxrwxrwx 2 root wheel 512B 26 ноя 01:56 tmp
drwxr-xr-x 12 root wheel 512B 26 ноя 01:56 usr
drwxr-xr-x 26 root wheel 512B 26 ноя 01:55 var
- тоже есть.
% umount /dev/da0s2Но при попытке загрузиться по F5 -> F2 пишет, что "no ufs".
В чём может быть дело, почему загрузчик boot1/boot2 не находит файловой системы?
>BSDM какое-то - список команд на 2 страницы.Пи%@*ц...Действительно, особенно п.4 -- ужас. Даже цЫкл не написали. 8-O
То ли дело --
find / -not \( -regex "/\(proc\|mnt\|dev\|tmp\)" -prune \) -a -not \( -type f -regex "/var/\(log\|run\)/.+" \) -print|cpio -padmu /mnt/
-- легко, приятно, полное удовольствие...:))))
И нет, моя команда - только пример, приближённый к, если с копипастом не промахнулся, не помная функциональная замена _всего_п.4_. Лениво было...
И да, на "UNIX"-ах не обязана работать. Те, у которых не GNU find и не GNU cpio -- изобретают "кошерные" велостипеды в сторонке.
"И да, на "UNIX"-ах не обязана работать. Те, у которых не GNU find и не GNU cpio -- изобретают "кошерные" велостипеды в сторонке." - у правильных юниксов есть гнутые пакеты, где гнутый grep например называется ggrep, гнутый patch - gpatch и т.д. :)
+1
развелось умниковвопрос не в подходе, а в идее вроде как
спасибо я так понимаю автору никто не скажет... а жаль
>- ее надо там сначала создать в таком случае, если она
>вам конечно там нужна и вы хотите более 1 раздела.На уровнеНе знаю как у вас, у меня на работе маздай у юзверя отказался видеть раздел дальше первого.
В итоге хитрый флэшь "ЗагрузочнаяБЗДя + Жирный(FAT)" осталась бесполезной, пришлось всё переформатировать вендой, чтобы та в истерике не билась.Надо попробовать наоборот. PXE ведь должен на флеше увидеть раздел с бздёй за Жиром 8Гиг?
> Интерактивно разбить на разделы:
> fdisk -i /dev/da0
> (ID разделов: UFS - 165, FAT32 - 11, EFI GPT - 238)хм... а мне почему то помнится что FAT16 - 6; а FAT32 - 12;
или я глубоко АшиПаюсь? ;)
>> Интерактивно разбить на разделы:
>> fdisk -i /dev/da0
>> (ID разделов: UFS - 165, FAT32 - 11, EFI GPT - 238)
>
>хм... а мне почему то помнится что FAT16 - 6; а FAT32
>- 12;
>
>или я глубоко АшиПаюсь? ;)ID=12 у FAT32 (LBA), для "больших" дисков. ;)
> На всё пространство:
> fdisk -BI /dev/da0gpart(8) умеет работать и с MBR-разделами (aka slices), и с BSD разделами (aka bsdlabels). Работая с gpart(8) можно забыть обо всех этих цилиндрах (http://en.wikipedia.org/wiki/Cylinder-head-sector).
Что-то вроде:
gpart create -s MBR ad0
gpart bootcode -b /boot/boot0 ad0 (или /boot/mbr)
gpart add -b X -s Y ad0
gpart create -s BSD ad0s1
gpart bootcode -b /boot/boot ad0s1
gpart add -b X -s Y -t freebsd-ufs ad0s1но я не пробовал, бо у мя везде zfs и zfsboot, разве что в виртуалках с линупсом ;)
> gpart add -b X -s Y ad0oops, забыл тип указать, для MBR это freebsd: gpart add -b X -s Y -t freebsd ad0
для BSD это один из: freebsd‐swap, freebsd‐ufs, freebsd-vinum и freebsd-zfs
Успешно перенёс систему (FREEBSD 7.0-RELEASE) на флэшку: на ноуте загружается и нормально работает. Но есть проблема: мат. плата того компа, для которого это предназначено, раздел с кодом 165 (FreeBSD) принимает за служебный и не грузится с него.Подобная ситуация описана в разделе 3.10 faq:
http://www.freebsd.org/doc/ru_RU.KOI8-R/books/faq/install.ht...
Но описанное там решение применить не смог - disklabel говорит "неизвестный параметр -s".
Если просто fdisk-ом поменять код раздела на 166, тоже отказывается грузиться.Подскажите, как сделать так, чтобы можно было загружать систему на компе, где bios не признаёт раздел с кодом 165?
> Подскажите, как сделать так, чтобы можно было загружать систему на компе, где bios не признаётраздел с кодом 165?
Поставить GRUB (а лучше - GRUB4DOS).
И грузить все, что душе угодно.
Не проще ли загрузиться с установчного диска и просто установить систему на флешку? :)
Вы не поняли.Когда в мат. плату воткнута флэшка с FreeBSD разделом, BIOS воспринимает этот раздел как служебный раздел FAT для режима сна. BIOS пытается обработать находящиеся на нём данные, но зависает, т.к. никаких данных режима сна там нет.
До GRUB дело не доходит.
Я пробовал просто поменять код раздела в таблице со 165 (FreeBSD) на 166 (OpenBSD), но тут отказывается грузиться GRUB - "boot failed", говорит.
Методику, описанную в FreeBSD FAQ, применить не смог. Видимо, она устарела.
тебе посоветовали поставить grub for dos на небольшой fat раздел (расположенный перед основным - любым, разделом), если я правильно понял выше сказанное..
> поставить grub for dos на небольшой fat раздел
> (расположенный перед основным - любым, разделом)Чтож, видимо вы ещё не исчерпали лимит телепатии.
Ибо в явном виде это не было написано.
Попробую так. Спасибо за идею.
Я конечно понимаю что изобретать велисапед это очень интересно, но все же, что помешало нормально вставить CD загрузиться с него, и установить по человечески Sysinstall`om фрю на флешку ?
>Я конечно понимаю что изобретать велисапед это очень интересно, но все же,
>что помешало нормально вставить CD загрузиться с него, и установить по
>человечески Sysinstall`om фрю на флешку ?Ну, например у меня в наличии только Boot-Only CD. А ради вашего совета мне пришлось бы опять вытягивать бинарные компоненты системы и необходимые пакеты из Сети, а это порядка 150МБ, если не больше.
4. Копирование системных каталогов на флэшку
% mount /dev/da0s2a /mnt% cp -R /boot /mnt/
% cp -R /sbin /mnt/
% cp -R /libexec /mnt/
% cp -R /lib /mnt/
% cp -R /bin /mnt/
% cp -R /etc /mnt/- именно в таком порядке, так как:
8. Важное замечание
Команды копирования системных каталогов необходимо выполнять, начиная с копирования каталога /boot и /sbin, в которых находятся файлы ядра и процессов инициализации системы. Это необходимо для того, чтобы загрузчик boot1/boot2 сумел найти код инициализации ядра в первых цилиндрах раздела носителя.
<внёс необходимые правки в статью, жду разрешения администратора>
Сегодня удалось завести и Apacer AH320 16Gb и SanDisk Memory Stick Micro M2 8Gb именно по такой схеме:
Первый раздел FAT32 (ID=11 или 12 (LBA) - не важно) чуть меньше 1ГБ.
Второй раздел UFS2 (ID=165) около 4ГБ.Система встала на UFS2 (/dev/da0s2a) и может загружаться с неё. Первый DOS-раздел (dev/da0s1) может использоваться для переноса файлов между разными операционками.
> Ну, например у меня в наличии только Boot-Only CD. А ради вашего совета мне пришлось бы опять вытягивать бинарные компоненты системы и необходимые пакеты из Сети, а это порядка 150МБ, если не больше.Т.е. если есть инсталляционный CD/DVD, можно установить прямо на флешку ещё из sysinstall'а ?