Что такое дискеты в linux

Обновлено: 08.07.2024

Существует два способа обслуживания устройств в Linux: DOS-способ и UNIX-способ. Сделайте ваш выбор.

Большинство дистрибутивов Linux включают в себя пакет Mtools---набор команд, которые эквивалентны своим копиям в DOS, но начинаются с буквы `m': т.е., mformat , mdir , mdel , mmd , и так далее. Они могут даже сохранять длинные имена, но не права доступа к файлам. Если вы настроите Mtools, редактируя файл /etc/mtools.conf (пример поставляется вместе с дистрибутивом пакета), то вы также сможете иметь доступ к разделам DOS/Win, к устройствам CD-ROM и Zip. Однако для форматирования нового диска команда mformat не будет работать. Как root, вам заранее необходимо выполнить команду: fdformat /dev/fd0H1440 .

Вы не можете иметь доступ в файлам на гибком диске для команд, таких как, например, less a:file.txt ! Это недостаток DOS-способа для доступа к дискам.

В UNIX имеется другой подход к обслуживанию устройств. Не существует отдельных томов, таких как A: или C:; диск, будь он гибким или любым другим, становится частью локальной файловой системы через операцию, называемую ``монтирование''. Когда вы заканчиваете работать с диском, до его извлечения вы должны ``отмонтировать'' его.

Физически форматирование диска> -- это одно действие, а создание файловой системы на нем> -- это другое. Команда DOS FORMAT A: выполняет оба действия, но в Linux существуют разные команды. Для форматирования гибкого диска> -- смотрите выше; для создания файловой системы используется команда:

Вы можете использовать dos , vfat (рекомендуется) или другие форматы вместо ext2 . Приготовив диск, примонтируйте его с помощью команды

указывая правильную файловую систему, если вы не используете ext2 . Теперь вы можете обращаться к файлам, используя /mnt вместо A: или B:. Примеры:

После того как вы закончите, до извлечения диска вы должны отмонтировать его, используя команду

Очевидно, что вы должны применять fdformat и mkfs только для неформатированных дисков, никогда до этого не применявшихся. Если вы хотите использовать диск B:, то ссылайтесь на fd1H1440 и fd1 вместо fd0H1440 и fd0 в вышеприведенном примере.

Излишне говорить, что то, что применяется для гибких дисков, также применяется для других устройств; например вы захотите примонтировать другой жесткий диск или устройство CD-ROM. Вот как примонтировать CD-ROM:

Это был ``официальный'' способ монтирования ваших дисков, но существует один прием. Поскольку немного досадно, что необходимо быть root для монтирования гибкого диска или CD-ROM, то каждому пользователю разрешается монтировать их вот таким способом:

    как root, сделайте следующее:

Теперь для монтирования гибкого диска в формате DOS и CD--ROM используются команды:

/mnt/floppy и /mnt/cdrom могут сейчас быть доступны любому пользователю. Помните, что разрешение всем монтировать диски таким способом -- это зияющая дыра в безопасности, если вас это беспокоит.

Двумя полезными командами являются df , которая дает информацию о примонтированых файловых системах, и du dirname , которая сообщает размер дискового пространства, занимаемого каталогом.

Существуют разные пакеты, которые помогут вам в этом занятии, но по крайней мере вы должны знать, как делается многотомное резервирование данных (как пользователь root):

Убедитесь, что имеется форматированный гибкий диск в устройстве и несколько дополнительных. Для восстановления ваших данных вставьте первый гибкий диск в устройство и выполните:



Новость по этому поводу уже была, время подавать и сам перевод. В своем руководстве Кристиан подробно излагает каждый шаг процесса создания дистрибутива и его записи на дискету формата 3.5". В конечном итоге работает такой дистрибутив даже на старых ПК с i486DX и вполне может выполнять скомпилированные приложения.

Уже более 7 лет я использую Linux в качестве основной ОС. С этой системой я экспериментирую с момента появления Fedora и Ubuntu и все еще помню получение бесплатных Live-CD от Canonical. Сейчас Linux уже установлена на всех моих компьютерах, включая Raspberry Pi и смартфоны.

Я даже администрирую два сервера IBM, которые также работают на Linux. Но при всем при этом мне до сих пор еще многое неизвестно о его внутреннем устройстве. В итоге я решил обогатить свои знания, реализовав забавный и в то же время полезный мини-проект.

Введение

Я с нуля создал встраиваемый дистрибутив Linux, уместив его всего на одну дискету. На момент написания он занимает около 1Мб, так что остается еще примерно 400Кб для дополнительного ПО.

Этот дистрибутив может загружаться на 486DX с 24 Мб ОЗУ (при меньшем объеме с помощью QEMU не загрузился). Через эмулятор загрузка происходит практически мгновенно. Что же касается современного «железа», не обремененного программной нагрузкой, то единственное, что ограничивает скорость загрузки – это скорость самого дисковода. Ее максимальный показатель составляет 125Кб/с, но в реальности даже меньше.

Я пока еще не пробовал загружать собранный дистрибутив на реальном 486-м, просто потому что такого у меня нет, но зато видел, как это проделывали другие, на что уходило около минуты. Честно говоря, большую часть этого времени происходила загрузка данных с диска.



FLOPPINUX, запущенный на Asus Eee PC 701SD — Intel Celeron-M 900МГц с 512Мб ОЗУ

В самом начале проекта я уделил немало времени подробному изучению вопроса, и к моему удивлению не нашлось ни одного хорошего руководства. Возможно, просто мне не удалось такое найти. Есть множество инструкций о том, как реализовать некоторые детали, но в большинстве случаев бесполезные, устаревшие или излишне упрощенные. Когда же я пробовал объединить эти знания, то постоянно заходил в тупик. Это и побудило меня еще больше углубиться в тему. В конечном итоге я многое узнал и сумел реализовать все свои замыслы.

Если у вас есть желание проделать нечто подобное, то эта статья для вас.

Выбор приложения

Первым приложением, которое я хочу запустить, будет создаваемый мной олдскульный журнал Nomad Diskmag, который я планирую выпускать на дискетах. Для ПК я разработал приятный GUI с помощью PyGame. Что касается моего встраиваемого проекта, то для него я заменю фронтенд на скрипт bash. Статьи в обеих версиях представляют простые файлы .txt , поэтому все что нужно – это создать обложку, содержание и выполнить cat для вывода тела каждого файла (используя less для вывода страниц).

Но прежде мне нужен рабочий дистрибутив, который будет загружать и выполнять этот скрипт. Его созданием мы и займемся.

Цели проекта



Красочные прозрачные дискеты!

Очевидная и наиболее важная цель – уместить все (ОС + ПО) на одну дискету или в 1440 Кб. В остальном же их можно описать так:

  • Последнее ядро Linux.
  • Минимум инструментов, необходимых для поддержки встраиваемого приложения.
  • Документация с легкими и понятными шагами для воспроизведения сборки.
  • Ну и, как обычно, открытый исходный код.
  • Возможность монтировать другую дискету для сохранения файлов.
  • Текстовый редактор nano (или подобный).

Сборка дистрибутива FLOPPINUX



Gold Master Floppy для FLOPPINUX VERSION 0.1.0

x86_64 и x86

Компилировать 32-битный код на 64-битной системе не очень удобно, и чтобы упростить процесс, я просто проделываю это на старом ноутбуке с 32-битным ЦПУ.

Также можно использовать VirtualBox с 32-битной системой.

Если же вы хотите использовать 64-битную хост-систему, добавляйте к командам ARCH=x86 . Вот пример:

Это руководство доступно во многих форматах, включая EPUB. Так что для удобства чтения можете загрузить его на eBook.

Рабочая директория

Создайте директорию, где будете хранить все файлы.

Я использую последнюю версию, которая объединяет в себе старые и новые технологии. На данный момент это Kernel 5.13.0-rc2.


Теперь, когда они находятся у вас в каталоге /linux/ , перейдем к настройке и сборке собственного ядра. Начнем с создания минимальной конфигурации:


Теперь нужно добавить поверх нее дополнительные настройки:


Из меню выберите следующие опции:


Скорость процесса будет зависеть от скорости вашего ЦПУ. В конечном итоге ядро будет создано в arch/x86/boot/bzImage . Переместите его в основную директорию.

Инструменты

Без инструментов ядро будет просто загружаться, и вы ничего не сможете делать. Одной из самых популярных и легковесных утилит является BusyBox. Она заменяет (более объемные) инструменты GNU функциональностью, которой достаточно для процессов встраивания.


Как и для ядра, здесь тоже требуется создать стартовую конфигурацию:


А теперь самое интересное. Вам необходимо выбрать нужные инструменты. Каждая запись меню покажет, сколько дополнительно Кб памяти будет занято тем или иным компонентом. Так что выбирайте вдумчиво.


Я выбрал следующие:

  • Settings > Build static binary (no shared libs)
  • Coreutils > cat, du, echo, ls, sleep, uname (change Operating system name to anything you want)
  • Console Utilities > clear
  • Editors > vi
  • Init Utilities > poweroff, reboot, init, Support reading an inittab file
  • Linux System Utilities > mount, umount
  • Miscellaneous Utilities > less
  • Shells > ash


Эта команда создаст файловую систему со всеми файлами в _install . Переместите ее в основной каталог. Лично я при этом также изменяю имя.

Файловая система

Ядро и базовые инструменты готовы, но системе требуется дополнительная структура каталогов.


Файл Inittab , обрабатывающий запуск, выход и перезапуск:


И сам скрипт init :


Сделайте init исполняемым и установите владельца всех файлов как root :


В завершении упакуйте директорию в один файл:


В правильности проделанного можете убедиться, запустив QEMU из основной директории:


Теперь можно записывать систему на дискету.

Загрузочный образ

Создайте загрузочный файл syslinux , который будет указывать на созданное ядро и файловую систему:


Создайте пустой образ дискеты:


Смонтируйте его, после чего скопируйте туда syslinux , ядро и файловую систему:

Теперь у вас есть собственный образ дистрибутива floppinux.img , готовый к записи на дискету и загрузке на физическом устройстве.

Запись

Если у вас есть встроенный дисковод:


У меня возникли сложности с записью образа на внешний дисковод из под Linux, поэтому я использовал инструмент diskwrite в Windows. Проблему я выявил позднее. Если у вас тоже USB-дисковод, то он будет отображаться как /dev/hd* . Команда на моем ПК:


Весь процесс занял меньше трех минут.

Первая загрузка!


Загрузка Floppinux на Fujitsu Siemens P1610 — Intel Core Solo 1.2 ГГц с 1 Гб ОЗУ:

Общая сводка

Объем диска: 1440Кб / 1.44Мб
Размер ядра: 632Кб
Инструменты: 552Кб
Оставшееся свободное место ( du -h ): 272Кб

Ссылки для скачивания

Если вы не хотите заморачиваться со всем этим, то просто скачайте мои файлы:

Версия 0.1.0
Голая система, готовая для кастомизации.

  • Ядро: bzImage
  • Файловая система с инструментами: rootfs.cpio.gz
  • Загрузчик: syslinux.cfg
  • Конфигурации Linux / Busybox (немного обновленные после публикации)
  • Готовый образ дискеты: floppinux.img <– Вам нужен этот файл
  • Зеркало: floppinux_0.1.0

Запуск



FLOPPINUX Version 0.2.0 новый логотип и загрузочный образ

Новый логотип, новый экран загрузки и в целом текстовый интерфейс. Простой интерактивный скрипт оболочки для чтения текстовых файлов. Режим KIOSK.

Подробнее об этом я написал в дополнении Floppinux Update 0.2.1

Добавление приложения

Теперь, когда у нас есть встраиваемый дистрибутив, пора найти ему применение. Загружается он очень быстро (после загрузки дисковода) и может легко выполнять любое скомпилированное приложение. Я же хочу поиграться со скриптами, поэтому вместо скомпилированной программы добавлю скрипты .sh . Далее процесс будет таким же.

  • Обновите файлы в каталоге /filesystem/
  • Сожмите файл rootfs
  • Смонтируйте образ дистрибутива
  • Замените файл rootfs
  • Размонтируйте образ
  • (необязательно) запишите новый образ на дискету
  • Загрузите новую систему с обновленным ПО

Режим KIOSK

FLOPPINUX запускает любое приложение, находящееся в /home/main . Измените этот путь для запуска вашей программы.

Использование в SLCE сменных устройств требует некоторых разъяснений. В этой главе описаны приемы чтения и записи файлов на/с дискет, CD/DVD и флэш-накопителей USB.

11.1. Использование дискет

Дискеты являются одним из самых старых видов сменных носителей, используемых при работе с персональным компьютером. Дискеты можно использовать для записи небольших файлов, которые необходимо физически перенести на другой компьютер. Со временем дискеты выходят из строя, поэтому их не рекомендуется использовать в качестве долговременного хранилища информации.

11.1.1. Монтирование и отмонтирование дискет

Перед использованием дискету необходимо подмонтировать, прежде чем вынуть дискету из дисковода, ее необходимо отмонтировать. Подмонтировать дискету — это значит присоединить ее к текущей файловой системе.

Чтобы подмонтировать дискету с помощью файлового менеджера Nautilus :

Вставьте дискету в дисковод.

Дважды щелкните по значку Компьютер (Computer) на рабочем столе. Откроется окно Компьютер .

Дважды щелкните по значку Дисковод (Floppy Drive) . Nautilus подмонтирует дискету и откроет окно с ее содержимым.

Через некоторое время значок дискеты появится на рабочем столе. Двойной щелчок по этому значку откроет окно с содержимым дискеты. Если перетащить файл на значок, файл будет скопирован на дискету.

Чтобы отмонтировать дискету через Nautilus :

Щелкните правой кнопкой мыши по значку дискеты на рабочем столе.

Выберите в появившемся меню Отсоединить том (Unmount Volume) .

Чтобы отмонтировать дискету вручную:

Откройте окно терминала.

Введите в командной строке команду umount /media/disk/ .

Отмонтировав дискету, можно вынуть ее из дисковода.

Если вы вынете дискету, не отмонтировав ее, файлы, которые вы хотели перенести на дискету, не будут на нее записаны. Вы также не сможете подмонтировать новую дискету. Убедитесь, что дискета отмонтирована, прежде чем вынимать ее.

11.1.2. Запись файлов Linux на дискету MS-DOS

Чтобы скопировать файлы на дискету с машины, работающей под ОС Linux, так, чтобы их можно было прочесть на машине, работающей под Windows, нужно отформатировать дискету с файловой системой MS-DOS (FAT). Производители дискет, как правило, форматируют их именно с файловой системой FAT. Вы можете отформатировать дискету при помощи ОС Windows или воспользовавшись утилитой gfloppy . За более подробной информацией обратитесь к Разд. 11.1.3, Форматирование дискет.

Файлы могут быть скопированы и удалены с дискеты путем ввода команд из командной строки или через Nautilus . Затем можно отмонтировать дискету и вынуть ее из дисковода. Теперь файлы на дискете будут доступны и на машине с ОС Windows.

11.1.3. Форматирование дискет

Файловой системой для дискет, используемых в Linux, является ext2. Создав на дискете файловую систему ext2, вы можете управлять ее содержимым так же, как управляете файлами и каталогами на жестком диске.

Форматирование уничтожит все содержимое вашей дискеты. Прежде чем производить какие-либо действия с дискетой, убедитесь, что вся необходимая информация с нее сохранена в другом месте.

11.1.3.1. Форматирование с помощью утилиты gfloppy

Для запуска gfloppy наберите в командной строке gfloppy . gfloppy не отформатирует подмонтированную дискету. Прежде чем приступить к форматированию, убедитесь, что значок дискеты отсутствует на рабочем столе. Если дискета подмонтирована, щелкните правой кнопкой по значку дискеты и выберите Отсоединить том (Unmount Volume) .

Как показано на Рис. 11.1, gfloppy имеет несколько опций. Установки по умолчанию подходят для большинства пользователей и задач. При необходимости вы можете отформатировать дискету с файловой системой типа MS-DOS. Вы также можете выбрать емкость дискеты (если вы не используете обычные дискеты 3.5" 1.44 Мбайт с высокой плотностью записи). Кроме того, вы можете выбрать быстрый режим форматирования (quick formatting mode), если ранее дискета была отформатирована с файловой системой ext2.

gfloppy

Рисунок 11.1. gfloppy

11.1.3.2. Использование mke2fs

Команда mke2fs используется для создания на устройстве, таком как раздел жесткого диска или, в данном случае, дискета, файловой системы Linux ext2. mke2fs по существу форматирует устройство и создает пустое Linux-совместимое устройство, которое может впоследствии быть использовано для хранения файлов и данных.

Вставьте дискету в дисковод и наберите в командной строке следующую команду:

В системах Linux /dev/fd0 относится к первому дисководу. Если у вашего компьютера более одного дисковода, первый дисковод будет называться /dev/fd0 , второй /dev/fd1 и так далее.

Утилита mke2fs имеет ряд опций. Опция -c дает указание команде mke2fs проверять устройство на наличие сбойных блоков перед созданием файловой системы. О других опциях вы можете прочесть в man-странице команды mke2fs .

Как только вы создали файловую систему ext2 на дискете, она готова к использованию в системе SLCE.

Использование в НауЛинукс сменных устройств требует некоторых разъяснений. В этой главе описаны приемы чтения и записи файлов на/с дискет, CD/DVD и флэш-накопителей USB.

16.1. Использование дискет

Дискеты являются одним из самых старых видов сменных носителей, используемых при работе с персональным компьютером. Дискеты идеальны для записи маленьких файлов, которые необходимо физически перенести в другое место. Например, если два компьютера не соединены в одну сеть, дискеты являются наилучшим способом перенести файлы с одного компьютера на другой. Со временем дискеты выходят из строя, поэтому их не рекомендуется использовать в качестве долговременного хранилища информации.

16.1.1. Монтирование и отмонтирование дискет

Перед использованием дискету необходимо подмонтировать, прежде чем вынуть дискету из дисковода, ее необходимо отмонтировать. Подмонтировать дискету — это значит присоединить ее к текущей файловой системе. Строго говоря, НауЛинукс присоединяет содержимое дискеты к файловой системе компьютера в виде каталога /media/floppy/ . Дискету можно подмонтировать вручную из командной строки. Наутилус может монтировать дискеты автоматически.

Чтобы подмонтировать дискету вручную:

Вставьте дискету в дисковод.

Введите в командной строке команду mount /media/floppy/ .

При монтировании дискеты к каталогу /media/floppy/ сигнальная лампочка дисковода должна мигать.

Вы можете получить доступ к содержимому дискеты, перейдя в данный каталог в командной строке, или через файловый менеджер, например, Наутилус .

Чтобы подмонтировать дискету с помощью Наутилуса :

Вставьте дискету в дисковод.

Дважды щелкните по значку Компьютер (Computer) на рабочем столе. Откроется окно Компьютер .

Дважды щелкните по значку Дисковод (Floppy Drive) . Наутилус подмонтирует дискету автоматически и откроет окно с ее содержимым.

Через некоторое время значок дискеты появится на рабочем столе. Двойной щелчок по этому значку откроет окно с содержимым дискеты. Если перетащить файл на значок, файл будет скопирован на дискету.

Чтобы отмонтировать дискету вручную:

Откройте окно терминала.

Введите в командной строке команду umount /media/floppy/ .

Чтобы отмонтировать дискету через Наутилус :

Щелкните правой кнопкой мыши по значку дискеты на рабочем столе.

Выберите в появившемся меню Отсоединить том (Unmount Volume) .

Отмонтировав дискету, вы можете спокойно вынимать ее из дисковода.

Если вы вынете дискету, не отмонтировав ее, файлы, которые вы хотели перенести на дискету, не будут на нее записаны. Вы также не сможете подмонтировать новую дискету. Убедитесь, что дискета отмонтирована, прежде чем вынимать ее.

16.1.2. Запись файлов Linux на дискету MS-DOS

Чтобы скопировать файлы на дискету с машины, работающей под ОС Linux, так, чтобы их можно было прочесть на машине, работающей под Windows, нужно отформатировать дискету с файловой системой MS-DOS (FAT). Производители дискет, как правило, форматируют их именно с файловой системой FAT. Вы можете отформатировать дискету при помощи ОС Windows или воспользовавшись утилитой gfloppy . За более подробной информацией обратитесь к Разд. 16.1.3, Форматирование дискет.

Файлы могут быть скопированы и удалены с дискеты путем ввода команд из командной строки или через Наутилус . Затем можно отмонтировать дискету и вынуть ее из дисковода. Теперь файлы на дискете будут доступны и на машине с ОС Windows.

16.1.3. Форматирование дискет

Файловой системой для дискет, используемых в Linux, является ext2. Создав на дискете файловую систему ext2, вы можете управлять ее содержимым так же, как управляете файлами и каталогами на жестком диске.

Форматирование уничтожит все содержимое вашей дискеты. Прежде чем производить какие-либо действия с дискетой, убедитесь, что вся необходимая информация с нее сохранена в другом месте.

16.1.3.1. Форматирование с помощью утилиты gfloppy

Для запуска gfloppy наберите в командной строке gfloppy . gfloppy не отформатирует подмонтированную дискету. Прежде чем приступить к форматированию, убедитесь, что значок дискеты отсутствует на рабочем столе. Если дискета подмонтирована, щелкните правой кнопкой по значку дискеты и выберите Отсоединить том (Unmount Volume) .

Как показано на Рис. 16.1, gfloppy имеет несколько опций. Установки по умолчанию подходят для большинства пользователей и задач. При необходимости вы можете отформатировать дискету с файловой системой типа MS-DOS. Вы также можете выбрать емкость дискеты (если вы не используете обычные дискеты 3.5" 1.44 Мбайт с высокой плотностью записи). Кроме того, вы можете выбрать быстрый режим форматирования (quick formatting mode), если ранее дискета была отформатирована с файловой системой ext2.

gfloppy

Рисунок 16.1. gfloppy

16.1.3.2. Использование mke2fs

Команда mke2fs используется для создания на устройстве, таком как раздел жесткого диска или, в данном случае, дискета, файловой системы Linux ext2. mke2fs по существу форматирует устройство и создает пустое Linux-совместимое устройство, которое может впоследствии быть использовано для хранения файлов и данных.

Вставьте дискету в дисковод и наберите в командной строке следующую команду:

В системах Linux /dev/fd0 относится к первому дисководу. Если у вашего компьютера более одного дисковода, первый дисковод будет называться /dev/fd0 , второй /dev/fd1 и так далее.

Утилита mke2fs имеет ряд опций. Опция -c дает указание команде mke2fs проверять устройство на наличие сбойных блоков перед созданием файловой системы. О других опциях вы можете прочесть в man-странице команды mke2fs .

Как только вы создали файловую систему ext2 на дискете, она готова к использованию в вашей системе НауЛинукс.

Читайте также: