Страница 8 из 15

Курс по Линукс Минт

Добавлено: 31 окт 2018, 00:13
di_mok
AlexZ писал(а):
31 окт 2018, 00:11
заработает на btrfs, или это исключено
AlexZ, не такая это уж и большая помеха. Сделай swap раздел.

Курс по Линукс Минт

Добавлено: 31 окт 2018, 00:19
AlexZ
di_mok писал(а):
31 окт 2018, 00:13
Сделай swap раздел
Да это не вопрос, но мне своп-файл удобнее.
В LM я пока вообще своп удалил, оперативки хватает.. :smile:
Но это так всё вопросы, на будущее..

Курс по Линукс Минт

Добавлено: 31 окт 2018, 00:58
slant
AlexZ писал(а):
31 окт 2018, 00:11
а может когда-нибудь он заработает на btrfs, или это исключено?
Это несовместимо с механизмами COW и снапшотов. Свап-файл - это не обычный файл. Там для него выделяется диапазон(ы) блоков, в которые открывается прямой доступ на чтение-запись как бы минуя файловую систему (в той, лишь обозначаются эти блоки как занятые чтобы конфликта не случилось). На btrfs такое невозможно, т.к. при записи новый блок будет гарантированно не тот, который перезаписывается. А еще блоки могут быть совмещенными из-за дедупликации данных и снапшотов.

Если ОЧЕНЬ хочется иметь свап-файл на btrfs - это технически все-таки возможно, если подключить файл через loop устройство. Инструкции есть в нете, но я на них даже ссылки давать не буду т.к:
1. Такой файл должен быть с атрибутом nocow, иначе в лучшем случае получите ДИКУЮ фрагментацию, и скорость дохлой черепахи. Лучше всего сделать отдельный подтом с nocow для всего содержимого, и уже на него класть файл.
2. Нельзя делать снапшоты с подраздела, где находится такой файл. Иначе поимеете огромные проблемы - разрушенную структуру.
3. Это все равно будет медленно, т.к. лишняя прослойка loop устройства.
4. Если что-то глюкнет (вроде питания) - с немалой вероятностью полетит структура раздела, т.к. nocow.

В общем - крайне не советую. Цена ошибки тут будет очень высока, можно легко запороть весь раздел.

Курс по Линукс Минт

Добавлено: 31 окт 2018, 03:53
StarMAUGLI
darkfenix писал(а):
17 окт 2018, 12:22
StarMAUGLI писал(а): ↑
17 окт 2018, 11:28
Файловые системы Linux

Очень объемная тема, стоит вынести в отдельный цикл занятий.
чего-то я запутался, что в данном случае имеется в виду как объемная тема "Файловые системы" (ext4, zfs и т.п.) или "Файловая структура" (корень, "обязательные" каталоги, файлы, все есть файл и т.п.), которую тоже в интернете периодически называются "файловой системой"?

Курс по Линукс Минт

Добавлено: 31 окт 2018, 04:39
StarMAUGLI
vir0id писал(а):
17 окт 2018, 15:05
Ubuntu mini.
полез почитать, попал на интересный блог
https://rockwoodguelph.wordpress.com/20 ... 4/install/
завис
весьма интересно (жалко только что год и версия там уже устаревшие)

Курс по Линукс Минт

Добавлено: 31 окт 2018, 06:52
vir0id
StarMAUGLI писал(а):
31 окт 2018, 04:39
жалко только что год и версия там уже устаревшие
Да не сказал бы. 18.10 релиз.
Lubuntu
https://help.ubuntu.com/community/Lubun ... malInstall

Курс по Линукс Минт

Добавлено: 31 окт 2018, 07:12
rogoznik
StarMAUGLI писал(а):
31 окт 2018, 04:39
жалко только что год и версия там уже устаревшие)
А там ничего, в плане порядка установки, не изменилось.

Курс по Линукс Минт

Добавлено: 31 окт 2018, 16:11
StarMAUGLI
vir0id писал(а):
31 окт 2018, 06:52
Да не сказал бы. 18.10 релиз.
я имел в виду ссылку на блог где описание установки и последующей настройки (даже приложил ее для интересующихся), а не файлы установки.
Файлы-то установки найти не сложно, но как потом ОС до ума довести? - для первого раза (тем более в случае убунты мини) путеводитель нужен, а то дальше консоли и делать то что не ясно (это у кого много опыта - глаза в этом месте разбегаются, а у кого мало - у того ступор).

Курс по Линукс Минт

Добавлено: 31 окт 2018, 16:12
StarMAUGLI
darkfenix писал(а):
31 окт 2018, 07:12
А там ничего, в плане порядка установки, не изменилось.
ок
надеюсь, что это так и есть
будет свободное время - поиграюсь (пока не буду отвлекаться от "дорожной карты")

Курс по Линукс Минт

Добавлено: 31 окт 2018, 16:13
vir0id
StarMAUGLI писал(а):
31 окт 2018, 16:11
а то дальше консоли и делать то что не ясно
Ну почему не ясно? Подключить сетку и ставить шкуру.

Курс по Линукс Минт

Добавлено: 31 окт 2018, 16:42
StarMAUGLI
vir0id писал(а):
31 окт 2018, 16:13
Ну почему не ясно?
Потому что время "кавалеристских наскоков" и "методов научного тыка" для меня уже уходит безвозвратно. Было время, когда я мог вылизывать свой пользовательский интерфейс неделями. Но потом я понял, что это потеряное время, т.к.
1. если бы я делал по вразумительному мануалу, то я потратил бы на это часа два. интерфейс был настроен лучше, и к тому же на глаз это было бы красивее.
2. как бы ни был вылизан мой пользовательский интерфейс, на работоспособность копмпьютера, установленного ПО, а также мою работоспособность на этом рабочем месте это ПОЧТИ не влияет (исключения есть, но они скорее подтверждают правило).

Курс по Линукс Минт

Добавлено: 31 окт 2018, 18:58
AlexZ
darkfenix писал(а):
26 окт 2018, 10:58
Но если я установлю на btrfs - файл создаться, но работать не будет и при загрузке в логах будет сыпать ошибки. Ну нельзя на btrfs swap-файл. А пользователь то может и не знать этого.
По-хорошему бы конечно предупреждать об этом надо. Представляю, сколько народу (даже если только на убунтовых дистрах) наступили на эти "грабельки"..
У нас ведь советам не влемлют - сначала сломают, потом инструкции начинают читать (или на форумы)

Курс по Линукс Минт

Добавлено: 31 окт 2018, 23:32
StarMAUGLI
Как (какой командой или по каким косвенным признакам) можно узнать какая система иниацилизации на компьютере под управлением Linux?

Курс по Линукс Минт

Добавлено: 01 ноя 2018, 00:46
slant
Набрать в консоли man systemd и systemd --version
Если стоит - должен быть результат - руководство и информация о версии соответственно.

Курс по Линукс Минт

Добавлено: 01 ноя 2018, 01:19
StarMAUGLI
slant писал(а):
01 ноя 2018, 00:46
Набрать в консоли man systemd и systemd --version
Нет. Не это. Вот как определить systemd, sysvinit, openrc или upstart. Ну допустим компьютер чужой, ты зашел в гости и тебя просят что-то там посмотреть.

UPD: Хех, нашел. Это ж наша любимая inxi -Fxz делает. В последнем блоке Info, есть подзаголовок Init: в котором и указывается какая именно системы инициализации на данном компе. :-D

Курс по Линукс Минт

Добавлено: 01 ноя 2018, 03:28
slant
Вот только в сама inxi входит далеко не во все дистрибутивы, а где входит - не всегда установлена по умолчанию.

Курс по Линукс Минт

Добавлено: 01 ноя 2018, 06:13
rogoznik
StarMAUGLI,

Код: Выделить всё

ls -l `which init`
Должна выдать нечто такое

Код: Выделить всё

lrwxrwxrwx 1 root root 20 июл 20 22:13 /sbin/init -> /lib/systemd/systemd
Если симлинка нет, то

Код: Выделить всё

strings /sbin/init | awk 'match($0, /(upstart|systemd|sysvinit)/) { print toupper(substr($0, RSTART, RLENGTH));exit; }'
Для systemd результат будет Для upstart Для sysvinit

Код: Выделить всё

SYSVINIT
Нашел еще вот такой способ

Код: Выделить всё

init --version | head -n1
Но у меня в LM19 ругается на неизвестный ключ --version, хотя man init говорит что такой ключ есть.

Курс по Линукс Минт

Добавлено: 01 ноя 2018, 11:40
StarMAUGLI
Мерси.
darkfenix писал(а):
01 ноя 2018, 06:13
Но у меня в LM19 ругается на неизвестный ключ --version, хотя man init говорит что такой ключ есть.
у меня в LM 18.3 тоже ругается... собственно вопрос и был вызван именно этим.

Курс по Линукс Минт

Добавлено: 01 ноя 2018, 12:35
Chocobo
В inxi для определения инита написана вот такая функция последовательных проверок

Код: Выделить всё

sub get_init_data {
        eval $start if $b_log;
        my $runlevel = get_runlevel_data();
        my $default = ($extra > 1) ? get_runlevel_default() : '';
        my ($init,$init_version,$rc,$rc_version,$program) = ('','','','','');
        my $comm = ( -e '/proc/1/comm' ) ? (reader('/proc/1/comm'))[0] : '';
        my (@data);
        # this test is pretty solid, if pid 1 is owned by systemd, it is systemd
        # otherwise that is 'init', which covers the rest of the init systems.
        # more data may be needed for other init systems.
        if ( $comm ){
                if ( $comm =~ /systemd/ ){
                        $init = 'systemd';
                        if ( $program = check_program('systemd')){
                                $init_version = program_version($program,'^systemd','2','--version');
                        }
                        if (!$init_version && ($program = check_program('systemctl') ) ){
                                $init_version = program_version($program,'^systemd','2','--version');
                        }
                }
                # epoch version == Epoch Init System 1.0.1 "Sage"
                elsif ($comm =~ /epoch/){
                        $init = 'Epoch';
                        $init_version = program_version('epoch', '^Epoch', '4','version');
                }
                # missing data: note, runit can install as a dependency without being the
                # init system: http://smarden.org/runit/sv.8.html
                # NOTE: the proc test won't work on bsds, so if runit is used on bsds we
                # will need more datas
                elsif ($comm =~ /runit/){
              elsif ($comm =~ /runit/){
                        $init = 'runit';
                }
                elsif ($comm =~ /^s6/){
                        $init = 's6';
                }
        }
        if (!$init){
                # output: /sbin/init --version:  init (upstart 1.1)
                # init (upstart 0.6.3)
                # openwrt /sbin/init hangs on --version command, I think
                if ((!$b_mips && !$b_sparc && !$b_arm) && ($init_version = program_version('init', 'upstart', '3','--version') )){
                        $init = 'Upstart';
                }
                elsif (check_program('launchctl')){
                        $init = 'launchd';
                }
                elsif ( -f '/etc/inittab' ){
                        $init = 'SysVinit';
                        if (check_program('strings')){
                                @data = grabber('strings /sbin/init');
                                $init_version = awk(\@data,'^version\s+[0-9]',2);
                        }
                }
                elsif ( -f '/etc/ttys' ){
                        $init = 'init (BSD)';
                }
        }
        if ( grep { /openrc/ } globber('/run/*openrc*') ){
                $rc = 'OpenRC';
                # /sbin/openrc --version == openrc (OpenRC) 0.13
                if ($program = check_program('openrc')){
                        $rc_version = program_version($program, '^openrc', '3','--version');
                }
                # /sbin/rc --version == rc (OpenRC) 0.11.8 (Gentoo Linux)
                elsif ($program = check_program('rc')){
                        $rc_version = program_version($program, '^rc', '3','--version');
                }
                if ( -e '/run/openrc/softlevel' ){
                        $runlevel = (reader('/run/openrc/softlevel'))[0];
                }
                elsif ( -e '/var/run/openrc/softlevel'){
                        $runlevel = (reader('/var/run/openrc/softlevel'))[0];
                }
                elsif ( $program = check_program('rc-status')){
                        $runlevel = (grabber("$program -r 2>/dev/null"))[0];
                }
        }
        my %init = (
        'init-type' => $init,
        'init-version' => $init_version,
        'rc-type' => $rc,
        'rc-version' => $rc_version,
        'runlevel' => $runlevel,
        'default' => $default,
        );
        eval $end if $b_log;
        return %init;
}
  • сперва проверяется кто живет в pid=1, на случай если это системда, если нет то там же могут найтись runit или некий epoch
  • Если не получилось - то смотрим дальше в /sbin/init --version в поисках апстарта,
  • затем проверяем наличие launchctl который укажет на launchd
  • Потом в случае очередного промаха ищем /etc/inittab чтоб детектировать SysVinit
И далее по списку для OpenRC/BSD/etc :hoho:

Курс по Линукс Минт

Добавлено: 01 ноя 2018, 15:17
StarMAUGLI
Chocobo писал(а):
01 ноя 2018, 12:35
В inxi для определения инита написана вот такая функция последовательных проверок
Ух, ты!
Сразу все системы инициализации в одном месте перечислены. И даже не знакомые. Чуть погуглить и будет чего в курсе рассказывать на эту тему. Хотя бы обзорно, не углубляясь.

А по WM такого же перечисления случаем нет? А то тоже по крохам пытаюсь собрать информацию.
Еще по оконным менеджерам есть вопрос: в википедии пишут, что в Юникс-подобных системах можно выбрать любой оконный менеджер. Но меня чего-то сомнения берут везде ли? Можно ли поменять оконный менеджер в Циннамоне? в КДЕ? в Гноме?