Некоторое время назад я написал статью, в которой критически высказался о Linux-разработчиках, не желающих поддерживать дистрибутив, если он предназначен для работы на компьютерах, которым более 15 лет. За это я получил немало критики от читателей с Hacker News. Кто-то указывал, что я не понимаю, насколько же это сложно – создать и поддерживать дистрибутив Linux. Были и такие, кто советовали мне просто накатить на старый компьютер старую версию Windows. Я же начал пользоваться Linux в первую очередь для избегания Windows, так как считал её монструозным порождением Билла Гейтса. Фактически, разработчики операционной системы, ранее обещавшие освободить меня от Windows, теперь склоняют меня вернуться к Windows, как только мой компьютер настолько состарится, что им станет неудобно его поддерживать. Ответы, которые я получаю от Linux-разработчиков, явно свидетельствуют, что Linux больше не является операционной системы для технарей-компьютерщиков, желающих сохранить на ходу свои любимые винтажные машины. Напротив, Linux превратился в операционную систему, которую разработчик рассматривает как средство для прокачки карьеры. Те, кому интересно подробнее разобраться в нарастающей дисфункциональности Linux и узнать, почему сложилась такая ситуация, могут посмотреть это видео на YouTube.
Некоторые разработчики советовали мне собрать собственный дистрибутив Linux. Хотел бы я! К сожалению, по паре причин этот вопрос не обсуждается. Во-первых, у меня просто нет на это времени. Слишком много времени у меня уходит на работу по поддержке моих сообществ Cheapskate's Guide и Blue Dwarf. Во-вторых, даже если бы я взялся за создание собственного дистрибутива, то получился бы ISO-образ размером более 1 гигабайта и с репозиторием на десятки гигабайт, а такой крупный софт я просто не мог бы выложить в общее пользование, так как мне было бы слишком дорого передать все эти данные.
Учитывая, что немного найдётся Linux-разработчиков, готовых поддерживать старые версии своих дистрибутивов в рабочем состоянии, единственный разумный с моей точки зрения выход – сохранить мои любимые дистрибутивы на будущее. К счастью, я сохраняю ISO-образы Linux, которым более 15 лет. Сейчас у меня есть резервные жёсткие диски с самыми разнообразными дистрибутивами. Вот неполный список: AntiX 19.4, AntiX 22, AntiX 23, Arch Linux 2020.09.01, Debian 11.3, Debian 11.1.0 Server, DSL 4.4.10, версии 1.2 и 4.4.9 со встроенными DSL, Kali Linux 2022.2, Kodachi Linux 8.15, LibreELEC 8.2, Mint 9, Mint 13, Mint 17, Lubuntu 22.04, MV Linux 21.1, Nano Linux 1.3, OpenElec 8.0.4, OpenWRT 19.07.7 обобщённый, Parrot OS 4.11.3, Parrot OS 5.3, PirateBox, Noobs v2_4_5, OSMC_TGT_rbp2_20190424, Raspberry Pi Buster 2020-05-27, Raspberry Pi Buster Lite 2020-05-27, Raspios Bullseye 2023-5-03, Raspian Buster 2019-07-10, Raspbian Jessie 2017-07-05, Raspbian Stretch 2017-11-29, TAILS 2.2.1, TAILS 4.5, Zenlive Linux 7.0 и Zorin 9 Lite. Большинство из этих версий в Интернете уже не найти. Если бы не моя предусмотрительность, то и у меня не было бы к ним доступа. Для большинства пользователей кроме меня они навсегда утрачены.
Со всеми вышеупомянутыми ISO-образами Linux существует важная проблема: в них содержатся только такие приложения, которые поставляются в виде ISO-файлов. Зачастую в них нет программ для чтения RSS-лент, браузера Lynx, PHP, веб-серверов, nmap, bleachbit, cowsay и fortune, truecrypt или Veracrypt, Unetbootin, macchanger, espeak, hwinfo, cpulimit, thermald, calibre, fbreader, браузера Dillo, браузера Vivaldi, libdvdread4, libdvd-pkg, libdvdnav4, загрузчика yt (теперь yt-dlp), почтового клиента Alpine, pulseaudio и многих других, от которых бы я не отказался. Многие из этих пакетов и сопутствующие им зависимости содержатся в репозиториях вышеупомянутых дистрибутивов. К сожалению, по прошествии многих лет установить их нельзя, поскольку многие репозитории теперь просто не существуют! Также можете не рассчитывать найти многие из библиотек, от которых зависят старые версии этих приложений для Linux.
Очевидное решение – скачивать и сохранять не только ISO-образ каждого дистрибутива Linux, но и его репозитории. Да, это осуществимо, и в Интернете можно найти множество статей, в которых объясняется, как скопировать репозиторий. Но сам процесс скачивания и хранения файлов на десятки гигабайт на множестве резервных жёстких дисков для каждого дистрибутива порой утомляет, особенно, если приходится делать это годами и учитывать такие факторы, как гниение бит и плановые обновления винчестеров.
Теперь, когда многие из моих старых ПК слишком устарели для современного Linux, мне приходится серьёзнее относиться к информации и сохранять не только базовые ISO-образы Linux, но и дополнительные файлы. Немного поразмыслив, я решил пойти по компромиссному пути, между двумя крайностями «сохранять только ISO-образ» и «сохранять ISO и все связанные с ним репозитории». Итак, пока такая возможность ещё не утрачена, я решил сохранять хотя бы по одной версии дистрибутива Linux плюс дополнительные пакеты к нему. Очевидный вариант – а в настоящее время, вероятно, и единственный – работать с AntiX Linux. Я не особенно переживаю за AntiX, поскольку багов в нём хватает. Кроме того, он работает несколько иначе, нежели другие Debian-подобные дистрибутивы. Вероятно, дело в том, что он использует легковесные среды для рабочего стола, в частности, IceWm. Они довольно старые и никогда не стандартизировались до такой степени, до какой принято доводить более современные окружения. К сожалению, не знаю ни одного другого до сих пор поддерживаемого дистрибутива, который бы нормально работал на компьютерах от двадцати лет и старше. Я пробовал несколько «легковесных» дистрибутивов и убеждался, что они просто кишат багами, и пользоваться ими на компьютерах старше 15 лет решительно невозможно.
❯ Устанавливаем AntiX
Я скачал ISO-образ AntiX-23_386_full.iso современной версии AntiX со страницы загрузки AntiX. Это самая «полная» версия, в которой содержится больше всего приложений для работы на ПК. Это 32-битная версия. Кстати, немного найдётся таких Linux-разработчиков, которые до сих пор предоставляют 32-битные версии своих дистрибутивов. Пожалуйста, не надо мне доказывать, что 32-битную версию любого дистрибутива Linux вполне можно скомпилировать из исходного кода. Я не раз безуспешно пытался скомпилировать таким образом хотя бы единичное приложение, поэтому на собственном опыте знаю, насколько маловероятно преуспеть с таким подходом.
Попытался установить AntiX из скачанного ISO-файла на мой компьютер fDell Precision M20, 2004 года выпуска. Эта машина может похвастаться ЦП Pentium M (Centrino) с частотой 1,86 ГГц и 2 ГБ ОЗУ (это для неё максимум). Этот компьютер я купил в 2019 году на барахолке за 20 долларов. Даже если вы совсем новичок в Linux, вам не составит труда установить AntiX, так как установщик в нём включён. К сожалению, я неоднократно и безуспешно пытался поставить его на «жёсткий диск» Precision M20 (за громким названием скрывается карта памяти microSD с адаптером IDE-to-microSD). Всякий раз казалось, будто установка прошла успешно. Я даже проверял систему при помощи Gparted, убеждаясь, что раздел диска действительно создан, с него можно загрузиться, и в него записываются данные. Потом перезагружаюсь – и никакого раздела нет! Короче говоря, мне не удавалось установить на этот компьютер ни одну из версий AntiX, ни 19.4, ни 23, ни через установщик с GUI, ни через командную строку. Теряюсь в догадках, но, возможно, что-то не так с самой microSD-картой или адаптером, поэтому установка и не выходит. Ранее я уже поднимал проблему некачественных установщиков Linux, поэтому здесь не стану снова в неё углубляться.
Поскольку мои первые попытки установить AntiX на Precision M20 успехом не увенчались, я решил повторить попытку на ноутбуке с обычным твердотельным жёстким диском SATA. Для начала установил компактный твердотельный диск SATA в мой ноутбук Lenovo Thinkpad T500, модель 2008 года, воспользовался при этом утилитой для установки AntiX через командную строку. AntiX установился! К сожалению, по-видимому, мне не удалось бы таким способом установить сверх одного-двух дополнительных пакетов при помощи команды «apt-get install» (уверен, что сначала я выполнил «sudo apt-get update»). В AntiX на этой машине проявлялись и другие неприятные баги, поэтому я подумал, что лучше воспользуюсь другим дистрибутивом Linux.
Несмотря на все эти неудачи, я не отступал. Попытался установить AntiX 23 на ноутбук Dell Inspiron 5100, модель 2002 года, с жёстким диском IDE на 40 ГБ и с 256 МБ ОЗУ. Это самый старый из имеющихся у меня действующих компьютеров. Установщик потребовал, чтобы я выделил ему весь жёсткий диск, но AntiX всё-таки встал. Затем, чтобы сэкономить место, я ужал сегмент с AntiX до 14 ГБ. Для этого я воспользовался Gparted на загрузочной флешке с AntiX, так как Gparted не может ужать сегмент, используемый в настоящий момент. Держал в уме, что нужно сделать перманентную резервную копию этого сегмента и потом попробовать устанавливать её на другие старые компьютеры. Непосредственно после установки дистрибутив занимал около 5 ГБ дискового пространства. Я обновил получившуюся конфигурацию при помощи «sudo apt-get update», а потом приступил к установке дополнительных пакетов.
❯ Добавляем пакеты Linux в AntiX
Как решить, какие именно пакеты Linux устанавливать? Если у вас есть рассчитанные на работу под Linux копии приложений, не содержащие зависимостей, то, теоретически, их можно установить в любой момент (хотя, чтобы максимально перестраховаться, можете поставить их сразу же). Важно установить именно те пакеты Linux, у которых есть по несколько зависимостей, ведущих в репозитории. В данном случае у вас возникает такая дилемма: требуется установить те приложения, которые могут вам понадобиться не только в ближайшем будущем, но, вероятно, и через 10, и через 20 лет. Конечно, непросто сходу определить, что это за приложения. Но можете попробовать установить по одному-два приложения всех основных типов: браузер, читалка для электронных книг, агрегатор новостных лент, офисный пакет, утилиты, т.д.
В качестве первой попытки я установил при помощи «sudo apt-get install» следующие дополнительные пакеты себе на Inspiron 5100:
- nmap
- ftp
- tcpdump
- iotop
- nethogs
- cowsay
- fortune
- macchanger
- bleachbit
- lynx
- liferea
- gedit
- thermald
- goldendict
- mplayer
- smplayer
- aspell
- fbi
- w3m
- seamonkey
Установив вышеперечисленные пакеты, я убедился, что все они сохранены на жёстком диске в каталоге /var/cache/apt/archives в формате ".deb". Кроме того, посмотрел с DVD кино через Smplayer. Шло медленно, но работало. С огромными проблемами установил библиотеки, необходимые для просмотра DVD-фильма в ОС Parrot 4.11 и выше. Очевидно, разработчик Parrot OS считает, что больше никто уже не смотрит фильмы с DVD.
Всякий раз при установке дополнительных пакетов в любой дистрибутив Linux, вы рискуете его дестабилизировать. Я не обнаружил никакой явной рассогласованности в работе того AntiX, который сам и установил, но, чтобы с уверенностью полагать, что всё прошло нормально, дистрибутив нужно тестировать неделю или более. Чтобы сохранить эту вполне работоспособную конфигурацию AntiX, я сделал резервную копию 14-гигабайтного сегмента и сохранил её на внешнем диске.
Затем я попытался установить следующие приложения, входящие в оборудованный графическим интерфейсом установщик пакетов для AntiX:
- pulseaudio
- Audacious
- GIMP Basic
- ImageMagick
- Handbrake
- Adobe Reader
- xfce4-screenshot
- VLC
Adobe Reader не установился, предположительно, потому, что для него не выполнялись две зависимости, которые мне не удалось подтянуть. Audacious не заработал. Когда я попытался проиграть в Smplayer и VLC фильм с DVD и MP4-файл, ни в одном из четырёх вариантов не было звука, в обеих программах ролики шли очень медленно, а в конце концов зависали. Позже мне удалось заставить VLC зазвучать, но всё равно ни одно из двух этих приложений не стало работать хотя бы так же гладко, как работал Smplayer до установки последнего набора программ. Я даже пытался нарастить ОЗУ на 750 МБ, но это проблем не решило. Я решил перенести резервную 14-гигабайтную копию AntiX на Inspiron 5100, вернувшись таким образом на более работоспособную машину. Пока мне кажется, что чем меньше приложений установлено, тем стабильнее работает вся система, а мне было бы предпочтительнее рассчитывать на уверенное воспроизведение видео, пусть и ценой отказа от некоторых приложений.
Есть два способа перенести файлы ".deb" в каталог /var/cache/apt/archives на другой компьютер, где установлен новый экземпляр AntiX. Первым делом нужно сделать резервные копии всех файлов ".deb", дополнительно к ISO-образу системы AntiX. Затем можно попытаться установить ISO на новый компьютер, скопировав файлы ".deb" в каталог /var/cache/apt/archives на новом компьютере, а затем установив их при помощи «apt-get install». Второй вариант – просто создать файл ".img" и записать в него весь сегмент с AntiX плюс дополнительные пакеты, а затем всё это скопировать на новый компьютер.
Как только я пошёл по первому пути, нарисовалась очевидная проблема. По какой-то причине «apt-get install» не понимала, какие ".deb"-файлы из каталога /var/cache/apt/archives от каких зависят. Не знала, в каком порядке их нужно устанавливать, если только они не лежат в репозитории. Подозреваю, что команда «gdebi -i» может устанавливать отдельно взятые пакеты с зависимостями, а команда «dpkg --unpack» – устанавливать пакеты безотносительно их зависимостей. Но у меня ни с одной ничего не получилось. Путь, на первый взгляд показавшийся простым как с точки зрения установки, так и относительно хранения дополнительных пакетов, не входящих в ISO-образ AntiX, на практике вышел более тернистым.
Таким образом, немного потрепав себе нервы за исследованием первого подхода, я осознал, что не представляю, как методично устанавливать файлы ".deb" в каталог /var/cache/apt/archives. Поэтому решил попробовать второй подход.
Второй подход выглядел так:
- Установить AntiX в небольшой сегмент на жёстком диске компьютера (напомню, после установки этот сегмент можно ужать при помощи Gparted);
- При помощи «sudo apt-get install» установить любые дополнительные пакеты на мой вкус;
- Сделать файл-образ небольшого сегмента (допустим, 14 ГБ) и вынести его на флешку командой «sudo dd if=/dev/sda of=/media/user/usb/AntiX_installed_with_extra_packages.img bs=1M count=14812 conv=notrunc, noerror» (обратите внимание: здесь используется /dev/sda, а не /dev/sda1);
- Запустить другой компьютер с загрузочной флешки с Linux, а уже в него вставить флешку, на которой содержится копия только что изготовленного мною образа AntiX;
- Скопировать образ AntiX на жёсткий диск нового компьютера при помощи «sudo dd if=/media/user/usb/AntiX_installed_with_extra_packages.img of=/dev/sda bs=1M conv=notrunc,noerror», и, наконец;
- Молиться, чтобы конфигурационный файл grub заработал на новом компьютере.
На этапе 3 я воспользовался «count=14812», чтобы скопировать первые 14,5 ГБ с жёсткого диска. Это я сделал лишь чтобы удостовериться, что у меня будет скопирована и главная загрузочная запись, на случай, если её не окажется в сегменте sda1. Если конфигурационный файл grub не заработает на новом компьютере, то придётся поразмыслить, как изменить его, чтобы загрузка прошла. Обратите внимание: я скопировал на новый компьютер лишь 14-гигабайтный сегмент sda1, но в какой-то момент его загрузочная последовательность оборвалась, поэтому и потребовалось указать «count=14812».
Именно вторым способом мне удалось перенести установленный AntiX с компьютера Dell Inspiron 5100 на модели Emachines KAV60 и Compaq Presario V5000. Оба раза всё получилось, даже не пришлось вносить изменений в файл grub.cfg. После того, какую огромную фрустрацию доставил мне первый способ, успех в данном случае практически сподобил меня простить разработчиков Linux и AntiX в частности, хотя, согласитесь, они сделали очень хрупкую операционную систему. Как говорится, осадочек остался.
Если кому-то из вас придётся работать со старым дистрибутивом, обязательно учитывайте эти риски. Конечно же, может быть опасно бороздить Интернет на таком старом софте. Может быть, воспользуйтесь Gemini или другой оверлейной сетью, которая пока не кишит подозрительными личностями (интересно, а существуют ли ещё такие сети?). Может быть, отключите JavaScript в браузере, и такой защиты будет достаточно? Ещё лучше было бы выделить старый компьютер строго для путешествий по Интернету, а на другом компьютере хранить исключительно личные данные. Также работает подход с использованием нескольких загрузочных USB-флешек на одном старом компьютере. Любая старая версия любого дистрибутива Linux отлично подойдёт для оффлайновой работы. В самом деле, а есть ли более удобные варианты для старого компьютера, на котором современный дистрибутив Linux? Может быть, Windows? Нет, я не враг моим старым компьютерам!
❯ Заключение
Ни в коем случае не утверждаю, что вышеописанный метод спасения старых версий любимых дистрибутивов Linux идеален (то же касается любых других операционных систем, которые вы хотели бы запустить на старом компьютере). Может быть, читатели предложат способ получше. Но я думаю, так лучше, чем довольствоваться лишь теми приложениями, которые оказались в конкретном образе, либо пробовать копировать целые репозитории (и эти резервные копии тоже копировать), а затем пытаться хранить их десятилетиями. Если бы мы только могли рассчитывать, что разработчики Linux сделают это за нас. Но они не сделают.