Небольшой HOWTO, как быстро установить FreeBSD из-под GNU/Linux без лишних действий. Записал по ходу установки, возможно, кому-нибудь пригодится.
Входные данные в моём случае:
- Есть неиспользуемый раздел на диске, разбитом через MBR. (Большая часть места на накопителях занята LVM-ом с кучей томов.)
- Весь раздел целиком буду монтировать в корень, не используя разбивку bsdlabel. Система ставится больше для экспериментов, чем для реальной работы, так что нет смысла заморачиваться с точной разметкой.
- По той же причине в качестве файловой системы использую UFS, а не ZFS.
- Хочется весь процесс провести из-под основной ОС, не тратя время на создание загрузочной флешки.
- В роли первичного загрузчика буду использовать grub, поэтому BSD-специфичный boot loader нас не интересует.
На одном из дисков я заранее зарезервировал четыре 20-гигабайтных раздела под эксперименты с разными ОС. На один из таких разделов установлю FreeBSD:
[root@aquila ~]# fdisk -l /dev/sda
Диск /dev/sda: 698,7 GiB, 750156374016 байт, 1465149168 секторов
Disk model: Hitachi HTS54757
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: dos
Идентификатор диска: 0xa33b6c03
Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sda1 * 2048 6146047 6144000 3G 83 Linux
/dev/sda2 6146048 105357311 99211264 47,3G 7 HPFS/NTFS/exFAT
/dev/sda3 105357312 1465147391 1359790080 648,4G 5 Расширенный
/dev/sda5 105359360 146319359 40960000 19,5G 83 Linux
/dev/sda6 146321408 187281407 40960000 19,5G 83 Linux
/dev/sda7 187283456 228243455 40960000 19,5G 83 Linux
/dev/sda8 228245504 269205503 40960000 19,5G 83 Linux
/dev/sda9 269207552 1465147391 1195939840 570,3G 8e Linux LVM
Скачиваем установочный образ:
$ axel -a 'download.freebsd.org/ftp/releases/amd64/amd64/I...'
$ xz -d FreeBSD-12.0-RELEASE-amd64-disc1.iso.xz
Установку будем проводить из-под qemu, работающему от имени пользователя. Чтобы сможно было подключить физический диск к qemu, нужно сменить владельца /dev/sda
:
# ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 апр 15 14:20 /dev/sda
# chown vadim:disk /dev/sda
# ls -l /dev/sda
brw-rw---- 1 vadim disk 8, 0 апр 15 16:12 /dev/sda
Я знаю, что идеологически правильно было бы добавить пользователя в группу
disk
, но мне как-то пофиг. После перезагрузки система забудет, что права на /dev/sda были отданы пользователю, а из группы пользователя надо удалять вручную.Запускаем виртуальную машину с установочным образом и нужным физическим диском:
$ qemu-system-x86_64 -m 2048 -hda /dev/sda -cdrom FreeBSD-12.0-RELEASE-amd64-disc1.iso -boot menu=on
Выбираем CDROM в качестве загрузочного устройства. Ждем появления Welcome Menu, выбираем <Shell>
. Инсталлятор нам не понадобится.
Посмотрим, какие разделы увидела система:
# ls /dev/ad*
И более подробно:
# gpart list | less
Виртуальная машина имеет прямой доступ к реальному /dev/sda
, так что нужно внимательно перепроверять все свои действия по поводу разделов диска.
Выяснили, как в гостевой ОС называется нужный раздел, создаем на нём файловую систему:
# newfs -U -L anjalifbsd /dev/ada0s5
- Опция
-U
указывает задействовать механизм Soft Updates. - Опция
-L
задаёт имя тома ФС.
Монтируем созданную ФС:
# mkdir /mnt/new_root
# mount /dev/ada0s5 /mnt/new_root
Теперь нужно распаковать операционную систему на новый раздел:
# cd /mnt/new_root
# tar xvf /usr/freebsd-dist/base.txz
# tar xvf /usr/freebsd-dist/kernel.txz
Система занимает меньше гигабайта:
# df -h .
Filesystem Size Used Avail Capacity Mounted on
/dev/ada0s5 19G 930M 16G 5% /mnt/new_root
Правим fstab. Честно говоря, я не знаю деталей о процессе инициализации FreeBSD и не уверен, что это обязательно:
echo '/dev/ada0s5 / ufs rw 1 1' > etc/fstab
echo 'tmpfs /tmp tmpfs rw 0 0' >> etc/fstab
Выключаем виртуальную машину:
# poweroff
На реальной машине правим конфиг grub.
У меня grub установлен на отдельном разделе таким образом, что установка любого нового слишком умного дистрибутива, перезаписывающего конфиг grub-а, не повлияет на этот загрузчик. В загрузочном меню этого отдельного grub-а указано, как грузить установленные ОС, внутри которых может работать уже собственный загрузчик дающий выбрать версию ядра и т.п. Например:
menuentry "Artix Sonata" {
configfile (lvm/aq-aq_artix)/boot/grub/grub.cfg
}
menuentry "Archlinux Aquila" {
configfile (lvm/aq-aq_archlinux)/boot/grub/grub.cfg
}
menuentry "Voidlinux Epsilon" {
multiboot (lvm/aq-aq_voidlinux)/boot/grub/i386-pc/core.img
}
Загрузчик FreeBSD я не задействовал, так что в моём случае достаточно добавить menuentry для прямой загрузки ядра FreeBSD:
menuentry "FreeBSD Anjali" {
insmod part_msdos
insmod ufs2
set root=(hd0,5)
kfreebsd /boot/kernel/kernel
kfreebsd_loadenv /boot/device.hints
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s5
set kFreeBSD.vfs.root.mountfrom.options=rw
boot
}
На этом всё. Установка сводится к распаковке архива с системой и запуску ядра любым подходящим загрузчиком. Даже проще, чем установить Арч.
Первые шаги в системе:
- Имя хоста задаётся через hostname(1).
- Управление пользователями и группами осуществляется при помощи pw(8).
- Про настройку локали см. login.conf(5). В конфиге уже прописан вариант для русской локали, так что достаточно указать login class пользователя равным russian.
- wpa_supplicant настраивается стандартно через конфиг, плюс надо указать пару строчек в rc.conf.
- Пакеты ставятся при помощи pkg(8).
Добрый день,есть ноут(dell vostro 1500), как сделать выключение пк через 5 мин, если нет энерго сети и отменить действие если электро сеть появилась.
Использую Linux dell vostro 1500 4.9.0-8-amd64 SMP Debian 4.9.130-2 (2018-10-27) x86_64
сейчас используюсь задание с (cron+acpi)
crontabe -e add */1 * * * * /etc/cron.d/poweroffacpi.sh
config poweroffacpi.sh
###############
!/bin/bash
APP=$(acpi -a | grep -v grep | grep on) if [ -z «$APP» ]; then sudo /sbin/shutdown -h now fi
###############
Но проблема в том, что оно тупо смотрит изменение раз в минуту и не возможно отменить его + идет разбежка от 1 до 60 сек до отключения и также systemd не дает отключить сразу, и добавляет еще 5 мин.
Может у кого есть варианты?
Я пробовал, но ничего не помогло(
laptop-mode-tools
/etc/acpi/power.sh
Решил посмотреть аниме с пользой: подтянуть английский. Для сего действа нужны: английский дубляж, английские субтитры, русские субтитры. Итак, первая проблема - у разных релизов разная длительность. Иногда разброс больше минуты и если прикрутить субтитры из одного видео в другое, то будет разсинхрон. Но это полбеды, ведь можно найти совпадающие по длительности. А вот серьёзная беда в том, что текст субтитров и дубляжа не совпадает!
Вот пример из NGE 1 серии ~2:26 в дубляже
We are sorry. Due to the stay special emergency, no lines are currently available. This is a recording.
It's no use. This is damn. I shouldn't have come here.
Тем временем в субтитрах
Due to the special emergency, all lines are currently unavailable.
It's no use. I shouldn't have come here after all.
Даже если в видео идут и субтитры и дубляж, то текст различается. Внимание вопрос: как найти озвучку не отступающую от субтитров или субтитры не отсупающие от озвучки?
Чего-то такое сделали, что теперь в ждущий режим комп уходит нормально, но при возвращеии из него зависает. Экран остается темным. Судя по светодиодам на материнской плате возможно что-то не в порядке с «оживлением» видеокарты.
Это какой-то багфикс чего-то был, так как перегенерировался initrd, но остался тот же номер ядра: 4.9.0-8 , что был и до обновления.
Проблема точно в изменениях в ядре, так как с ядром 4.9.0-7 все работает нормально. Хочу подчеркнуть, что в grub-install это ближайшая предыдущая версия, а вообще-то и с текущей 4.9.0-8 было нормально до какого-то последнего «несущественного» изменения, что даже номер версии не поменялся.
Система: Debian 9 stable. 64бит. Видеокарта: AMD RX580 8Гб. CPU = Core i7 3930K, чипсет X79.
Ну и что пытаться найти? Логи, как я понимаю, искать бесполезно, они при зависании не сохранятся. Между прочим, почему-то не могу найти /var/log/dmesg вообще, хотя команда dmesg работает.
https://wikidevi.com/wiki/TP-LINK_Archer_T2U_Nano
Debian.
Не работает usb wi-fi адаптер TP-LINK Archer T2U Nano
Чип rtl8811au - 100%
На всякий случай для проверки взамен драйвера с диска. на windows ставил дрова от производителя чипа Realtek c оф. сайта, и они подошли.
В Linux же драйвер https://github.com/aircrack-ng/rtl8812au никак работать не хочет, хотя согласно readme.md разработчик заявляет о поддержке.
## RTL8812AU/21AU and RTL8814AU drivers
### Supports Realtek 8811, 8812, 8814 and 8821 chipsets
на том же драйвере, ранее пользованное устройство ASUS USB-AC56 работало без проблем.
Нужна среда умеющее следующее:
1. Переключение треков с контроллера. Каждый трек солирующий со своим инструментом
2. Возможно засплитить клаву. Часть - один инструмент, часть другой, играть можно одновременно
3. Переключение патчей инструмента с контроллера
4. Секвенсор
5. Поддержка LV2 плагинов
Bitwig умеет в 1 и 4. Но не умеет в 5. И просит много зелени.
Ardour нихрена не умеет ни в 1 (играет все треки одновременно, надо мышкой щелкать и переключать midi входы), ни в 3 (хочет от контроллера, чтобы он слал номер патча, т.е. нет пошагового переключения путем многократного нажатия на одну и ту же кнопку контроллера).
Нужна среда умеющее следующее:
1. Переключение треков с контроллера. Каждый трек солирующий со своим инструментом
2. Возможно засплитить клаву. Часть - один инструмент, часть другой, играть можно одновременно
3. Переключение патчей инструмента с контроллера
4. Секвенсор
5. Поддержка LV2 плагинов
Bitwig умеет в 1 и 4. Но не умеет в 5. И просит много кушать.
Ardour нихрена не умеет ни в 1 (играет все треки одновременно, надо мышкой щелкать и переключать midi входы), ни в 3 (хочет от контроллера, чтобы он слал номер патча, т.е. нет пошагового переключения путем многократного нажатия на одну и ту же кнопку контроллера).
Ищу удаленную интересную работу по Python или Java стеку в команде сильных разработчиков.
Последние 7 лет работал в банках разработчиком MS SQL и Oracle. Писал небольшие приложения на Java и Python.
Готов выполнить тестовое задание.
Образование - МГУ факультет ВМК.
Помогите, пожалуйста, разобраться. Есть программа, где используются вызовы fork() и pipe(). В процессе-родителе записывается информация в дескриптор fd[1], а в процессе-ребенке читается дескриптор fd[0] и выводятся эти данные на экран. Все это написано в одном файле.
А у меня задача, чтобы в процессе-ребенке вызвался вызов exec() и оттуда как-то прочиталась информация, которую мы записали в процессе-родителе в дескрипторе fd[1]. Проблема в том, что в exec() мы же передаем файл, а в этом файле я не могу получить доступ к тем дескрипторам, которые были созданы в первоначальном файле. Помогите, разобраться с этим заданием. Много времени уже не могу разобраться.
Вот собственно код, который нужно поменять:
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
int main(){
int fd[2], result;
size_t size;
char resstring[14];
if(pipe(fd) < 0){
printf(«Can\'t create pipe\n»;
exit(-1);
}
result = fork();
if(result <0){ //ошибка создания
printf(«Can\'t fork child\n»;
exit(-1);
}
else
if (result > 0) { //родительский процесс
close(fd[0]);
size = write(fd[1], «Hello, world!», 14)
if(size != 14){
printf(«Can\'t write all string\n»;
exit(-1);
}
close(fd[1]);
printf(«Parent exit\n»;
}
else { //процесс ребенок
close(fd[1]);
size = read(fd[0], resstring, 14);
if(size < 0){
printf(«Can\'t read string\n»;
exit(-1);
}
printf(«%s\n»,resstring);
close(fd[0]);
}
return 0;
}
А вот задание: Модифицировать программу так, чтобы канал использовался для связи двух родственных процессов,
исполняющих разные программы. Обратить внимание, на то, что процесс ребенок должен читать информацию
из канала после замены его пользовательского контекста.
Собор парижской Бого-Матери горит.
Ну вот обязательно кому то какой манускрипт не понрпвится. Да не разбирают людишки в них нифига
Всем привет, прошу помощи знатоков. Будет ли работать такая штука, есть комп на centos с кучей винтов и есть комп с офтопиком, в каждом из них есть emulex fb карты 8gbit, будет ли работать ситуация если я их напрямую соединю и передам блочное устройство заранее созданое в линуксе в винду ? (хочу что бы линукс выступал как хранилка для файлов видеонаблюдения)
Директор Яндекса по распространению технологий Григорий Бакунов поделился своими воспоминаниями о том, как Google «последовательно изживал Mozilla со свету, продолжая делать вид что они партнеры».
Меня эта история совсем не удивляет, я отлично помню переговоры с ребятами из MoCo в то время. И помню как мы им сто раз говорили что будет именно так, а они искренне верили в партнерство с Гуглом.
Я все еще пользуюсь Firefox и очень доволен этим продуктом. Но что-то мне подсказывает, что такими темпами скоро мы увидим новости “firefox переходит на движок Хромиума”.
https://roem.ru/15-04-2019/277166/yandex-preduprezhdal/
Добрый день.
Подскажите из-за чего может быть малая нагрузка на cpu, не использование всех ядер и маленькая скорость вставки в базу и выборки из InnoDb таблиц?
Насколько я понял даже если заставить использовать все ядра - особого профита это не даст и нужно менять логику самих запросов.
Dimez, ты редисон! Заставляешь под вечер напрягать мозги.
И так, имеем драму:
- https://rene.rebe.de/about/
- https://exactcode.com/
- http://t2sde.org/about.html
Чувак снимал видос про старенький IBM, и конечно же получил некое усредненное воплощение лоровца в треде :-)
https://www.reddit.com/r/linux/comments/bd2jm9/blast_from_the_past_booting_linux_50_on_20_year/
But, you know, Rene, what I don’t like about your style is your lack of community work. You always try to make it look like you all made this by yourself, but there are tons of people involved all this. I am on various kernel mailing lists and upstream mailing lists but I hardly ever see your name anywhere - I remember one mail to the SPARC LKML where you claimed something was broken but that discussion didn’t lead anywhere IIRC.
Anyway, try to be more active in the community and don’t try to make it look like it’s all your effort, it isn’t and you know that.
I am pushing all my contributions upstream, always. Be it Rust, OpenJDK, the kernel or whatnot. My main purpose is just to improve open source code and not to show off.
Ну далее понеслась по кочкам дискуссия.
Where did you see a personal attack in his comment? Maybe you're the one with issues to work out.
0xRENE - edited 2 hours ago
He is repeatedly and reoccuringly down talking, and down playing my contributions, calling it a «one-man distribution», and «your style is your lack of community work». Why is my 20 years privately donated work worth nothing but public shaming? With what did I deserve this? Not white, not elite, not Debian enough? I wrote whole open software from scratch including GSMP and exact-image. I did not do any self promotion for 20 years – this is certainly why so few people know me. Half of my time in 20 years was donated to OpenSource; what should I do? Stop earning money and do even more open source and become homeless, to be recognised as contributor to open source? This kind of hostility is making me depressive. I'm at a point that after 20 years even I am close to giving up on Linux and stop the open source thing entirely. Because honestly it neither did something to my career, positively in my life, and this kind of reoccurring personal attacks are just the tip of the iceberg.
Короче, токсичность комментов довела чувака до стрима:
https://www.youtube.com/watch?v=woGZgP3fGpI
Где он промыл кости всем топовым техно-вертихвосткам.
Но месседж происходящего таков: для индивидуалов и мелких компаний лучше не опенсурсить, а просто делать продукты.
Может решение конечно не спонтанное, но он собрался забросить опенсорц и сконцентрироваться на коммерческой разработке, т.к. опенсорц превратился в некое токсичное хобби, которое жрет время и не дает «расти» %-)
Вот такой вот хеппи энд финале...