/ diy

FreeBSD on SSD disk pt2

В предидущей части я пытался (безуспешно по причине своей невнимательности) поставить FreeBSD на CF, точнее поставится то оно поставилось но потом я пожег эту флешку 12v.. После безуспешных попыток купить новую флешку на барахолках (предложили только через неделю), я стал искать другие варианты. В старом компе (который я выставил на продажу, и поэтому не хотел оттуда что-то доставать, но пришлось) был SSD на 30 Gb, Kingston SSDNOW.. Конечно не супербыстрый, но для таких целей вполне сгодится..

Сначало стал эксперементировать со старыми контроллерами IDE и переходниками SATA->IDE, но что-то это мне не понравилось как работает и я решил искать путь Native SATA. Для начала достал те два контроллера – один не рабочий (promise fasttrack ii 150 pci), второй глючный (Jmicron 366 SATA/IDE, pci-e 1x).. Первый вообще не определился никак, при включении черный экран и все, нет сигнала..
А вот второй решил выяснить почему он “глючный”.. Помню когда только его купил и поставил через некоторое время на нем сыпались UDMA CRC ERRORS, отваливались разделы дисков подключенные к данному контроллеру, вобщем полный набор глюков.. Но было это наверное еще во время FreeBSD 9, что вселяло некоторую надежду что за это время драйвера допилили.. А в последнее время когда его пробовал с него было невозможно загрузится.. В интернете читал про контроллеры с таким же чипом и внешнем видом – что у кого-то работает только один (ближний разъем) а на втором валятся ошибки, что кто-то клеил на чип радиатор и глюки уходили..

Вобщем предпринял еще одну попытку борьбы с этим глючным контроллером.. Первое что сделал отключил все диски с onboard контроллера и вытащил Marvell 4xSATA-AHCI PCI-E 1x котроллер (вот этот совсем безглючный, покупал на Aliexpress, не отказался бы еще от одного)), и оставил по совету с форума SSD на ближнем к чипу разъеме (радиатор по второму совету приклеен еще давно), поставил FreeBSD, первая перезагрузка и все задумывает секунд на 30? WTF?.. я думал что все не загрузочный он и все.. но по прошествии 30 секунд все вродебы начало грузится (последующие перезагрузки почти моментальные после инициализации диска).. только в dmesg стало писатся что GPT разметка повреждена, и все работает со второй-бэкапной копии.. Погуглив там давался совет что можно восстановить первую копию через gpart recover и бэкапится и менять диск, WTF еще раз, этот ссд с нормальным смартом, неужели он посыпался от одной переустановки?.. сделал gpart recover, fsck -y -f нашлось куча ошибок, исправилось, перезагрузка… и опять подвисание на 30 секунд.. и в этот раз я заметил что перед инициализацией загрузчика написано что GPT разметка повреждена, невозможно считать LBA 4. И тут до меня дошло что это же “RAID” контроллер, точнее fake-raid.. незнаю зачем вообще существуют эти уродцы, но конфигурацию raid он пытается записать на диск, а когда загружается FreeBSD она инициализирует этот контроллер как AHCI и начинаются эти глюки.. Впринципе Jmicron 366, часто распаивался на материнки, и там было три режима работы – Legacy/IDE, RAID, AHCI.. а на этом контроллере нет возможности выбора (в отличие биоса материнской платы), и работает только в режиме фейк-рейда..

Сразу пришла мыслб препрошить AHCI биосом, но его не нашлось – только на jmicron 363 прошивка, и она не захотела прошиватся в 366.. Ну что же есть второй путь, отпаять нафиг чип с флешкой – чтобы не дать загрузится “RAID” биосу и портить своим конфигом начало диска.. но скорее всего будет потеряна возможность грузится с этого контроллера.

jmicron366

Отпаял паяльной станцией многострадальную флешку с глючной прошивкой, ставлю контроллер назад – в биосе платы при подключенных устройствах к этому контроллеру нет возможности загрузки с него.. ну это было ожидаемо..) что ж переставляю SSD на onboard sata 3g, переустанавливаю, больше никаких ошибок, тупежей при загрузке.. Подключаю к этому контроллеру пустой диск, создаю GPT раздел, пишу из /dev/random 50Gb файл, перезагружаюсь, запускаю fsck… и никаких ошибок..))

Далее перевесил на этот контроллер два старых Hitachi 7K3000 (с одного из которых надо было переписать инфу и снять), все работало без глюков, переписывал с одного диска на другой (оба на этом контроллере) гигов 500, без ошибок, скорость 100-110 mbytes per second. Вобщем я оказался доволен этой “модификацией”, не пришлось пару недель а то и месяц ждать контроллера с aliexpress..

Теперь что касается FreeBSD на SSD/CF.. хоть это и SSD, более надежный чем CF и быстрый, я решил сделать ro на /.
Конфиг в rc.conf оказался такой:

tmpmfs="YES"
tmpsize="128m"
tmpmfs_flags="-S"
varmfs="YES"
varsize="192m"
varmfs_flags="-S"
populate_var="YES"
entropy_boot_file="/var/bootentropy"
entropy_file="/var/entropy"

что касается entropy, не уверен что сделал правильно что и с /boot/entropy и с /entropy свалил все в мемдиск, надо почитать насчет этого еще.. но без этих строчек загрузка подвисала на секунд 20, с сообщением что невозможно писать в /entropy.

Заняло все это всего лишь 1.3Gb.. впринципе можно было уместится в 2Gb CF.. SWAP подключен файлом на диске (как раз подключенным к тому контроллеру выше)..

Filesystem Size Used Avail Capacity Mounted on /dev/label/bootroot 27G 1.3G 24G 5% /

Возможно потом приделаю разъем для флешки и попробую записать программатором от похожих 363/362 чипов AHCI прошивки, хотя в моем случае это не критично..

FreeBSD on SSD disk pt2
Share this

Subscribe to Somewhere Nowhere