Аптайм больше года
Недавно посмотрел аптайм своего сервака и узнал, что он тихо и незаметно пересёк отметку в год работы без перезагрузок.
Чуть позже снял скрин с WEB-сервиса отслеживания аптайма: Показать
Недавно посмотрел аптайм своего сервака и узнал, что он тихо и незаметно пересёк отметку в год работы без перезагрузок.
Чуть позже снял скрин с WEB-сервиса отслеживания аптайма: Показать
Часто сталкиваюсь с ситуацией, когда при попытке запуска в QEMU виртуалки с образа диска (в основном IMG) возникает ошибка Kernel panic — not syncing: Attempted to kill init!: Показать
Пример ошибки:
sd 0:0:0:0: [sda] Attached SCSI disk smc91x.c: v1.1, sep 22 2004 by Nicolas Pitre <nico@fluxnic.net> eth0: SMC91C11xFD (rev 1) at d089a000 IRQ 25 [nowait] eth0: Ethernet addr: 52:54:00:12:34:56 mousedev: PS/2 mouse device common for all mice TCP cubic registered NET: Registered protocol family 17 input: AT Raw Set 2 keyboard as /devices/fpga:06/serio0/input/input0 input: ImExPS/2 Generic Explorer Mouse as /devices/fpga:07/serio1/input/input1 EXT2-fs (sda2): error: couldn't mount because of unsupported optional features (244) EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities EXT4-fs (sda2): recovery complete EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null) VFS: Mounted root (ext4 filesystem) on device 8:2. devtmpfs: mounted Freeing init memory: 120K Kernel panic - not syncing: Attempted to kill init! [<c0032bec>] (unwind_backtrace+0x0/0xf0) from [<c03064dc>] (panic+0x58/0x170) [<c03064dc>] (panic+0x58/0x170) from [<c0044054>] (do_exit+0x5d0/0x68c) [<c0044054>] (do_exit+0x5d0/0x68c) from [<c004435c>] (do_group_exit+0x40/0xb0) [<c004435c>] (do_group_exit+0x40/0xb0) from [<c004ed48>] (get_signal_to_deliver+0x1a8/0x378) [<c004ed48>] (get_signal_to_deliver+0x1a8/0x378) from [<c002f124>] (do_signal+0x90/0x518) [<c002f124>] (do_signal+0x90/0x518) from [<c002fa64>] (do_notify_resume+0x48/0x54) [<c002fa64>] (do_notify_resume+0x48/0x54) from [<c002cc38>] (work_pending+0x24/0x28)
Вероятно, эта ошибка возникает при отсутствии флага проверки файловой системы (возможно, в корне ФС лежит пустой файл с именем /forcefsck). Борюсь с этим так. Командой fdisk получаю сектор начала ФС (допустим — 217156), умножаю его на размер сектора (обычно 512 байт) и получаю смещение (в данном примере — 111183872 байт). С этим смещением монтирую на спецдевайс /dev/loop0 IMG-файл. Провожу проверку с лечением возможных повреждений ФС, затем убираю монтирование спецдевайса.
sudo fdisk -l <имя образа>.img sudo losetup -o <смещение * 512> /dev/loop0 <имя образа>.img sudo fsck -fv /dev/loop0 sudo losetup -d /dev/loop0
Источники:
http://web.archive.org/web/20161224011451/http://blog.3mdeb.com/2015/12/30/emulate-rapberry-pi-2-in-qemu/
https://raspberrypi.stackexchange.com/questions/40854/kernel-panic-not-syncing-vfs-unable-to-mount-root-fs-on-unknown-block179-6
У меня есть старая железка с
DebWrt 2.0 на борту, вот такая:
D-Link DIR-320/A2E
При выполнении команд apt-get получил предупреждения о том, что ldconfig и start-stop-daemon не найдены по пути поиска или не являются исполняемыми файлами (у меня русская локаль, поэтому системные сообщения выводятся на русском): Показать
# apt-get install debian-keyring Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово Следующие пакеты устанавливались автоматически и больше не требуются: wwwconfig-common libjs-mootools javascript-common Для их удаления используйте 'apt-get autoremove'. НОВЫЕ пакеты, которые будут установлены: debian-keyring обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 4 п акетов не обновлено. Необходимо скачать 31,1 MБ архивов. После данной операции, объём занятого дискового пространства возрастёт на 35,8 M B. ВНИМАНИЕ: Следующие пакеты невозможно аутентифицировать! debian-keyring Установить эти пакеты без проверки [y/N]? y Получено:1 http://archive.debian.org/debian/ squeeze/main debian-keyring all 201 0.12.29 [31,1 MB] Получено 31,1 MБ за 41с (745 kБ/c) dpkg: предупреждение: «ldconfig» отсутствует в каталогах, перечисленных в PATH, или не является исполняемым. dpkg: предупреждение: «start-stop-daemon» отсутствует в каталогах, перечисленных в PATH, или не является исполняемым. dpkg: предупреждение: «update-rc.d» отсутствует в каталогах, перечисленных в PAT H, или не является исполняемым. dpkg: В каталогах, перечисленных в PATH, отсутствуют или не являются исполняемыми 3 необходимых программы. NB: В PATH суперпользователя обычно должны присутствовать /usr/local/sbin, /usr/sbin и /sbin. E: Sub-process /usr/bin/dpkg returned an error code (2) #
Для исправления этого, по совету отсюда и отсюда, я добавил в файл /root/.bashrc такую строку:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
UPD: Для самых слабых умом, которые (как и я) гуглят ошибку, а не читают системные месседжи до конца: достаточно было бы добавить к переменной PATH просто путь /sbin, так как оба бинарника лежат там. Ну и сообщение в конце вывода какбэ намекает:
NB: В PATH суперпользователя обычно должны присутствовать /usr/local/sbin, /usr/sbin и /sbin.
В связи с частыми вылетами демона TTRSS из-за недостатка памяти решил откусить 2 гига от корневой ФС для файла подкачки. Не уверен, что поможет, но попробую...
Создал пустой файл /swapfile размером 2 Гб:
dd if=/dev/zero of=/swapfile bs=1M count=2048
Установил ему права:
chmod 600 /swapfile
Отформатировал этот файл как своп:
mkswap /swapfile
Добавил файл подкачки в систему:
swapon /swapfile
В файле /etc/fstab добавил строку:
/swapfile swap swap defaults 0 0
для того, чтобы при перезагрузке файл опять был добавлен в систему как своп.
Источники:
https://wiki.debian.org/Swap
https://www.tecmint.com/create-a-linux-swap-file/
http://blog.sedicomm.com/2017/07/26/kak-sozdat-linux-swap-fajl/
Рассказ об особенностях монтирования файловых систем.
Вчера моя дражайшая половина супруга задала мне интересный вопрос — что будет, если в одну точку монтирования привинтить две разных файловых системы?
Сегодня, найдя свободное время, я попробовал это выяснить опытным путём в ВиртуалБоксовой машине с установленным
Дебианом, о чём отчитываюсь: Показать
– Создал директории /mnt/A и /mnt/B и файлы A.img и B.img (размером по 10 Мб), отформатировав их в разные файловые системы (ext2 и minix): Показать
soul@debian:~$ sudo -s root@debian:/home/soul# fallocate -l 10M A.img root@debian:/home/soul# fallocate -l 10M B.img root@debian:/home/soul# ls /mnt root@debian:/home/soul# mkdir /mnt/A root@debian:/home/soul# mkdir /mnt/B root@debian:/home/soul# mkfs.ext2 A.img mke2fs 1.42.12 (29-Aug-2014) Discarding device blocks: done Creating filesystem with 10240 1k blocks and 2560 inodes Filesystem UUID: 866d1e35-dad7-466a-990a-411601395777 Superblock backups stored on blocks: 8193 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done root@debian:/home/soul# mkfs.minix B.img 3424 inodes 10240 blocks Firstdatazone=112 (112) Zonesize=1024 Maxsize=268966912 root@debian:/home/soul#
– Смонтировал их в разные директории (A.img в /mnt/A, B.img в /mnt/B): Показать
root@debian:/home/soul# mount -o loop A.img /mnt/A root@debian:/home/soul# ls /mnt/A lost+found root@debian:/home/soul# mount -o loop B.img /mnt/B root@debian:/home/soul# ls /mnt/B root@debian:/home/soul#
– Отмонтировал B.img от /mnt/B и примонтировал к /mnt/A, создал каталог /mnt/A/test1: Показать
root@debian:/home/soul# umount /mnt/B root@debian:/home/soul# mount -o loop B.img /mnt/A root@debian:/home/soul# mkdir /mnt/A/test1 root@debian:/home/soul# ls /mnt/A test1 root@debian:/home/soul#
– Перемонтировал A.img и B.img и примонтировал их к разным директориям, посмотрел результат создания каталога: Показать
root@debian:/home/soul# umount /mnt/A root@debian:/home/soul# umount /mnt/A root@debian:/home/soul# mount -o loop A.img /mnt/A root@debian:/home/soul# mount -o loop B.img /mnt/B root@debian:/home/soul# ls /mnt/A lost+found root@debian:/home/soul# ls /mnt/B test1 root@debian:/home/soul# umount /mnt/A root@debian:/home/soul# umount /mnt/B root@debian:/home/soul#
– Повторил эксперимент в другой последовательности: Показать
root@debian:/home/soul# mount -o loop B.img /mnt/A root@debian:/home/soul# mount -o loop A.img /mnt/A root@debian:/home/soul# ls /mnt/A lost+found root@debian:/home/soul# mkdir /mnt/A/test2 root@debian:/home/soul#
– Отмонтировал оба файла, примонтировал их опять к разным директориям и посмотрел результат второго этапа: Показать
root@debian:/home/soul# umount /mnt/A root@debian:/home/soul# umount /mnt/A root@debian:/home/soul# mount -o loop A.img /mnt/A root@debian:/home/soul# mount -o loop B.img /mnt/B root@debian:/home/soul# ls /mnt/A lost+found test2 root@debian:/home/soul# ls /mnt/B test1 root@debian:/home/soul#
– Отмонтировал всё, удалил ненужные файлы и каталоги: Показать
root@debian:/home/soul# umount /mnt/A root@debian:/home/soul# umount /mnt/B root@debian:/home/soul# rm A.img root@debian:/home/soul# rm B.img root@debian:/home/soul# rmdir /mnt/A root@debian:/home/soul# rmdir /mnt/B root@debian:/home/soul# ^D exit soul@debian:~$
Из вышеприведённого можно сделать вывод, что изменения применяются на ту файловую систему, которая была примонтирована последней.
P. S. Здесь речь идёт о стандартных решениях, всякие там LVM, ZFS, btrfs и unionfs не рассматриваются.
Информация о системе: Показать
soul@debian:~$ uname -a Linux debian 3.16.0-6-amd64 #1 SMP Debian 3.16.56-1 (2018-04-28) x86_64 GNU/Linux soul@debian:~$ cat /etc/issue.net Debian GNU/Linux 8 soul@debian:~$ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 8 (jessie)" NAME="Debian GNU/Linux" VERSION_ID="8" VERSION="8 (jessie)" ID=debian HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" soul@debian:~$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.10 (jessie) Release: 8.10 Codename: jessie soul@debian:~$
Проект Debian празднует своё двадцатипятилетие. Дистрибутив был впервые анонсирован Яном Мёрдоком (Ian Murdoch) 16 августа 1993 года в списке рассылки comp.os.linux.development. Первичной задачей проекта была разработка дистрибутива, развиваемого в соответствии с духом полной открытости, свойственной Linux и GNU, а также стремление к техническому совершенству и надёжности.
В моей жизни Дебиан был не первой ОСью, но стал первым дистрибутивом, с которым столкнулся по рабочей необходимости. И с тех пор ни разу не возникло желания попробовать поработать на другом дистрибутиве. Попробовать поставить что-то другое, разобраться в тонкостях установки и настройки, для широты кругозора так сказать — это пожалуйста.
Показать
Кто-то считает его жутким нагрождением костылей, кого-то оттолкнуло решение отказаться от традиционной системы инициализации и перейти на systemd, но моим рабочим дистром был и остаётся Дебиан. 25 лет — даже для человека серьезный срок, немного продуктов (особенно с открытой кодовой базой) может похвастать столь длинным сроком жизни, но у Дебиана есть безоговорочный авторитет среди пакетных дистров, с которым считаются все. Многие дома и по работе используют другие дистрибутивы , но уважение и почёт к Debian’у остается в силе... У него самая большая пакетная база, самое большое дробление пакетов, огромное сообщество, да и команда проекта не маленькая. Пакетный менеджер в Debian’е — самый гибкий ПМ из всех binary-based.
За время существования Debian было выпущено 15 релизов, обеспечена поддержка 30 аппаратных архитектур, сформирован репозиторий из более чем 40 тысяч пакетов. В проект вовлечено более 1000 разработчиков, на технологиях Debian построено около 150 производных дистрибутивов, не считая многочисленных ответвлений от таких основанных на Debian дистрибутивов, как Ubuntu.
С днюхой, Дебиан, долгих лет!!!
Проект Debian празднует своё двадцатичетырёхлетие. Дистрибутив был впервые анонсирован студентом Университета Пердью Яном Мёрдоком (Ian Murdock) 16 августа 1993 года в списке рассылки comp.os.linux.development. Этот день и считается днем рождения операционной системы Debian.
Показать
Первичной задачей проекта была разработка дистрибутива, развиваемого в соответствии с духом полной открытости, свойственной Linux и GNU, а также стремление к техническому совершенству и надёжности.
За время существования Debian было выпущено 14 релизов, обеспечена официальная поддержка 30 аппаратных архитектур, сформирован репозиторий из более чем 50 тысяч пакетов. В проект вовлечено более 1000 разработчиков, в сервисе alioth.debian.org зарегистрировано около 30 тысяч аккаунтов. На технологиях Debian построено более 300 производных дистрибутивов, из которых около 120 активно развиваются.
С днём рождения, лучший и надёжнейший дистрибутив! Дистрибутивище!!!
P.S. Дебиан уже 24 года торт!
P.P.S. Жизненный путь дебиана и его семья:
https://upload.wikimedia.org/wikipedia/commons/6/69/DebianFamilyTree1210.svg?uselang=ru
Давным-давно появилась у меня железка D-Link DIR-300/A2,
вот такая. Так как на ней есть разъём USB, то я поставил туда прошивку DebWrt, продукт
противоестественного скрещивания Debian и OpenWrt
С тех пор на винте лежит текстовый файл, описывающий основные команды настройки этой ОС. Публикую здесь как памятку для себя (с моими комментариями), ну а если сей опус кому-либо когда-либо как-либо чем-то пригодится — я буду только рад!
Показать
cd /etc/network rm interfaces // это симлинк на interfaces.firstboot cp interfaces.firstboot interfaces vi interfaces // настраиваем сетевые интерфейсы как нам нужно // следующие команды необходимы для настройки доступа в интернет без перезагрузки устройства // (после доступ будет реализован путём выдачи IP по DHCP от шлюза во внешнюю сеть) ip a a $IP/$MASK dev $IF && echo '8.8.8.8' > /etc/resolv.conf && ip r a via $GW // для обновления репозитория со squeeze до wheezy cp /etc/apt/sources.list /etc/apt/sources.list.old echo 'deb http://ftp.debian.org/debian wheezy main' > /etc/apt/sources.list gpg --keyserver pgpkeys.mit.edu --recv-key F120156012B83718 && gpg -a --export F120156012B83718 | apt-key add - gpg --keyserver pgpkeys.mit.edu --recv-key 010908312D230C5F && gpg -a --export 010908312D230C5F | apt-key add - gpg --keyserver pgpkeys.mit.edu --recv-key CBF8D6FD518E17E1 && gpg -a --export CBF8D6FD518E17E1 | apt-key add - gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010 && gpg -a --export 7638D0442B90D010 | apt-key add - gpg --keyserver pgpkeys.mit.edu --recv-key 8B48AD6246925553 && gpg -a --export 8B48AD6246925553 | apt-key add - // опционально gpg --keyserver pgpkeys.mit.edu --recv-key 6FB2A1C265FFB764 && gpg -a --export 6FB2A1C265FFB764 | apt-key add - aptitude update aptitude upgrade adduser $USER echo '$USER ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers // обновление системы, можно и aptitude upgrade/aptitude dist-upgrade впендюрить, если время позволяет aptitude update // установка нужных пакетов aptitude install mc sudo locales bash-completion ntpdate openssh-server screen wpasupplicant // установка опциональных пакетов aptitude install most nload htop ccze telnet wavemon tcpdump fping nmap ipcalc console-cyrillic // установка совсем уж опциональных пакетов aptitude install apache2 php5 mysql-server mysql-client // настройка локали, шрифтов, таймзоны dpkg-reconfigure locales dpkg-reconfigure console-cyrillic // если поставлен dpkg-reconfigure tzdata
Далее следует настройка переменных и алиасов в ~/.bashrc и ~/.profile (а равно и в /root/.bashrc и /root/.profile).
Если кого заинтересовала эта прошивка — вот ссылка на мою инструкцию по перепрошивке девайса (DIR-320/A*, версия прошивки — 10.03).