AndrewT писал(а):Сейчас проверил воспроизведение косяка - накатил на старый винт Фрю, вытащил его , и через ЮСБ3-шный адаптер подоткнул к серваку2012, после того, как он увиделся в управлении дисками, корректно отключил ЮСБ, вытащил винт, воткнул обратно в комп для Фри, бут - и - вуаля! - та же картинка - mount from ada0p2 failed with error 19.
mountroot видит только ada0, а партиций на нём не видит.
И ЛайвСиди, с инсталляционного диска, не видит ни gpart-ом ни т.д. сам винт(ada0), только самого себя(da0)(флешку).
и КАК создать заново разметку ??? - вот в чём вапросс... Инсталлятор Фри при первоначальной разметке сразу предупреждает, что данные будут эрэйзед, так что использовать этот путь невариант.
# man gpart
для EFI без align (выравнивания)
- создали таблицу GPT
# gpart create -s GPT hdd
где hdd -> daX или adaX, устройства можно посмотреть:
# camcontrol devlist
- зарезервировали место под загрузчик EFI
# gpart add -t efi -s 800K hdd
- записали туда загрузчик EFI
# dd if=/boot/boot1.efifat of=/dev/[hdd]Xp1
- создаем партиции для FreeBSD
# gpart -t freebsd-ufs -s 3G hdd (это будет корень hddXp2)
# gpart -t freebsd-swap -s XG hdd (это будет swap hddXp3)
# gpart -t freebsd-ufs -s XYG hdd (это будет hddXp4)
здесь можно сколько угодно партиций сделать, всего не более 128 стандарт GPT
# gpart -t freebsd-swap hdd (все остальное отдали одной FS и это будет hddXp5)
реальный пример:
Код: Выделить всё
# camcontrol devlist
<ST3500514NS SN11> at scbus1 target 0 lun 0 (ada0,pass0)
<ST3250820AS 3.AAC> at scbus4 target 0 lun 0 (ada1,pass1)
#
хочу ada0 разметить руками под машину с UEFI (на другом PC или с LiveCD/USB):
Код: Выделить всё
# gpart create -s GPT ada0
# gpart add -t efi -s 800K ada0
# dd if=/boot/boot1.efifat of=/dev/ada0p1
# gpart -t freebsd-ufs -s 100G ada0
# gpart -t freebsd-swap -s 4G ada0
выше, на ada0:
- создали GPT
- создали EFI размером 800K
- используя dd скопировали побайтно файл-образ EFI-FAT с EFI BOOT
Код: Выделить всё
# ls -la /boot/boot1.efifat
-r--r--r-- 1 root wheel 819200 27 авг 16:49 /boot/boot1.efifat
#
что в этом файле:
Код: Выделить всё
# mount_msdosfs /dev/`mdconfig -f /boot/boot1.efifat` /mnt
# ls -la /mnt
total 21
drwxr-xr-x 1 root wheel 16384 1 янв 1980 .
drwxr-xr-x 23 root wheel 512 11 сен 13:54 ..
drwxr-xr-x 1 root wheel 512 26 апр 2014 efi
[joker]~ > ls -la /mnt/efi/
total 17
drwxr-xr-x 1 root wheel 512 26 апр 2014 .
drwxr-xr-x 1 root wheel 16384 1 янв 1980 ..
drwxr-xr-x 1 root wheel 512 26 апр 2014 boot
[joker]~ > ls -la /mnt/efi/boot/
total 65
drwxr-xr-x 1 root wheel 512 26 апр 2014 .
drwxr-xr-x 1 root wheel 512 26 апр 2014 ..
-rwxr-xr-x 1 root wheel 65536 26 апр 2014 BOOTx64.efi
#
# umount /mnt
# mdconfig -d -u 0
- создаем FS на ada0p2 - корень на 100G и прогоняем fsck на всякий пожарный:
Код: Выделить всё
# newfs -U /dev/ada0p2
# fsck_ffs -y /dev/ada0p2
- если загрузились с LiveCD(disc1/dvd1)/LiveUSB(memstick), монтируем корень в /mnt
- устанавливаем руками OS FreeBSD в /mnt
дистрибутив на Live... находится в
/usr/freebsd-dist
Код: Выделить всё
ls -la /usr/freebsd-dist/
total 315315
drwxr-xr-x 2 root wheel 2048 12 ноя 2014 .
drwxr-xr-x 15 root wheel 2048 12 ноя 2014 ..
-rw-r--r-- 1 root wheel 782 12 ноя 2014 MANIFEST
-rw-r--r-- 1 root wheel 66173780 12 ноя 2014 base.txz
-rw-r--r-- 1 root wheel 1429216 12 ноя 2014 doc.txz
-rw-r--r-- 1 root wheel 885536 12 ноя 2014 games.txz
-rw-r--r-- 1 root wheel 89066304 12 ноя 2014 kernel.txz
-rw-r--r-- 1 root wheel 16636712 12 ноя 2014 lib32.txz
-rw-r--r-- 1 root wheel 33638776 12 ноя 2014 ports.txz
-rw-r--r-- 1 root wheel 115049476 12 ноя 2014 src.txz
Код: Выделить всё
# cd /usr/freebsd-dist
# sh
# for file in base.txz lib32.txz kernel.txz;
do (cat $file | tar --unlink -xpJvf - -C /mnt;
done
#
система развернута на новом диске, корень которого ada0p2 смонтирован в /mnt
- осталось создать /mnt/etc/fstab и /mnt/etc/rc.conf - создали
- отмонтировали диск: umount /mnt
- shutdown
- вытащили диск с UEFI и подключили его к PC с UEFI
Все, вопросы?