Почему мы должны смонтироваться на Linux?

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

68
13.04.2017, 15:36
9 ответов

Одной из причин является то, что доступ к блоке доступом является немного более низким уровнем, чем LS , с которым можно было бы работать. / dev / cdrom , или dev / sda1 может быть вашим приводом CD ROM и раздел 1 вашего жесткого диска соответственно, но они не реализуют ISO 9660 / EXT4 - они ' Re просто необработанные указатели на эти устройства, известные как файлы устройств .

Одно из вещей, которые определяет, как использовать этот сырой доступ - какую файловую систему логику / драйверы / модули ядра собираются управлять чтениями / пишетами или переведением LS / MNT / CDROM , в который Блоки должны быть прочитаны, и как интерпретировать содержание этих блоков в такие вещи, как file.txt .

Другие времена, этот низкий уровень доступа может быть достаточно хорошим; Я только что прочитал и записал на последовательные порты, USB-устройства, TTY терминалам и другим относительно простым устройствам. Я бы никогда не постарался вручную читать / писать из / dev / sda1, скажем, редактируйте текстовый файл, потому что я в основном должен повторно пересмотреть логику ext4, что может включать, среди прочего: посмотрите на файл inodes, найдите Блоки хранения, прочитайте полный блок, делают мои изменения, напишите полные блоки, затем обновите inode (возможно), или вместо этого напишите это все в журнал - слишком сложно.

Один из способов увидеть это для себя - просто попробовать:

[root@ArchHP dev]# cd /dev/sda1
bash: cd: /dev/sda1: Not a directory

/ dev - это каталог, и вы можете CD и LS все, что вам нравится. / dev / sda1 не является каталогом; Это специальный тип файла, который является то, что ядро ​​предлагает в качестве «ручки» к этому устройству.

См. Ввод Wikipedia на файлах устройств для более глубокой обработки.

68
27.01.2020, 19:31

При запуске бабочки из оболочки она удаляет кавычки вокруг 0,0,0,0 . С другой стороны, systemd не делает котировки расширения в этой ситуации, потому что это не оболочка.

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

Попробуйте удалить кавычки вокруг 0,0,0,0 в файле службы и просмотреть изменения. Не забудьте загрузить systemctl daemon-reload .

P. S.: Вы не можете волшебным образом сделать демон сокет-активируемый, просто написав socket. Его код должен быть изменен для поддержки активации сокета.

-121--166954-

Вы должны просто следовать рекомендации для CDROM в руководстве :

 ddrescue -n -b2048 /dev/cdrom cdimage logfile
 ddrescue -d -b2048 /dev/cdrom cdimage logfile

И будьте готовы, что чтение DVD может занять несколько дней. Я сам сделал только 4Gb накопителей, но прочитал отчет (сейчас нарушенная ссылка) о том, кто занимает 10 дней за 7.8Gb DVD.

max-errors влияет на количество ошибок в блоке для попытки, retry-passes влияет на частоту попытки блока. отсутствие скребка и отсутствие обрезки влияют на стадии скребка и обрезки. Мне никогда не нужно было использовать эти дополнительные варианты для drescue , единственное, что вам нужно в моем опыте - это терпение.

-121--175167-

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

mount - это не только «предоставление вам доступа к файлам», это говорит ОС, файловую систему, которая есть у диска, если он доступен только для чтения или для чтения/записи и т. д.

/dev/cdrom это низкоуровневое устройство, функции операционной системы не будут знать, как получить к ним доступ... представьте себе, вы поставили в него странно отформатированный cdrom (даже аудио cd), как бы ls сказали, какие файлы (если таковые есть) есть на cd-rom без «монтирования» его первым?

Обратите внимание, что это происходит автоматически во многих ОС (даже Linux на некоторых дистрибутивах и графических интерфейсах), но это не означает, что другие ОС не «монтируют» диски.

20
27.01.2020, 19:31

Для согласованности

Представьте, что у вас есть несколько разделов на первом жестком диске в системе. Например, /dev/sda2. Позже вы решите, что диск недостаточно большой, поэтому вы покупаете второй диск и добавляете его в систему. Внезапно это становится /dev/sda, а ваш текущий диск становится /dev/sdb. Теперь ваш раздел стал /dev/sdb2.

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

Однако при подключении можно использовать ту же точку подключения для этого переименованного диска. Вам нужно будет отредактировать /etc/fstab, чтобы сообщить системе, что (например) /медиа/резервное копирование теперь является /dev/sdb2, но это только одно редактирование.

Обратите внимание, что современные системы еще проще. Вместо того, чтобы ссылаться на устройство как /dev/sda2 или /dev/sdb2, у них есть UUIDS, которые выглядят аналогично c5845b43-fe98-499a-bf31-4eccae14261b или могут иметь более дружественные маркировки, такие как резервное копирование , которые можно использовать для справки об устройстве при монтаже. Таким образом, имя устройства не меняется при добавлении нового устройства, что делает администрирование ещё более простым:

# mount LABEL="backup" /media/backup

Для безопасности

Потребовав монтируемое устройство, администратор может контролировать доступ к устройству. Устройство может быть удалено, когда оно не монтируется, но не когда оно используется (если только вы не хотите потерпеть потерю данных). Если вы являетесь (были) пользователем Windows, помните маленький зеленый значок в области уведомлений, который говорит вам, что USB-накопитель безопасно извлекать? Это означает, что Windows монтирует и размонтирует флешку для вас. Так что принцип не только Unix/Linux.

8
27.01.2020, 19:31

Многие движки баз данных могут работать непосредственно с необработанными дисками или разделами. Например, MySQL:

http://dev.mysql.com/doc/refman/5.7/en/innodb-raw-devices.html

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

4
27.01.2020, 19:31

Существует несколько преимуществ к текущей договоренности. Они могут быть сгруппированы в преимущества блочных специальных файлов и преимуществ монтируемых точек.

Специальные файлы - это файлы, которые представляют устройства. Один из идей, на которые был построен UNIX, это все файл. Это делает много простых вещей, например, взаимодействие пользователя - это просто файл читает и записывает на устройство TTY, который является символом специального файла. Аналогичным образом, проверка плохих блоков, разделение или форматирование диска - это просто файловые операции. Это не MATA, если диск MFM, IDE, SCSI, Fiberchanel или что-то еще это просто файл.

Но с другой стороны, вы не хотите иметь дело со всем диском или разделом только файлами, а во многих случаях больше файлов, чем на диске. Таким образом, у нас есть монтирование. MountPoint позволяет вам поставить целый диск (или раздел) в каталог. Вернувшись в мои дни Slackware, когда жесткий диск с хорошим размером стал парой сотен МБ, было общим использование компакт-диска как / usr и жесткий диск для /, / usr / local и обменение. Или вы могли бы поставить / на один диск и / домой на другой.

Теперь я заметил, что вы упомянули монтаж вашего CD ON / Media / CDROM, который удобно для компьютеров только с одним приводом CDROM, но что, если у вас есть более одного? Где вы должны крепить второе? или третий? или пятнадцатое? Вы могли бы, безусловно, использовать / media / cdrom2 и т. Д. Или вы можете установить его на / src / samba / resources / windows-install, или / var / www, или где бы он имел смысл сделать это.

5
27.01.2020, 19:31

Это делает это, потому что есть, со многими СМИ для рабочего стола и ноутбука UIS, двусмысленность о том, что делать, когда носитель вставлен, потому что пользовательская интуиция заключается в том, что вставляют диск в физическом поле, с которыми пользователь взаимодействует не отличается Чтобы сказать, вставляя его в устройство рядом с компьютером, который имеет сетевое соединение.

Таким образом, в фундаментальном смысле, интернет-интерфейс для носителей необходимо лечить два вида возможных мероприятий по монтажу, и для компьютеров нет хорошего способа обрабатывать сетевые монтажные монтажные средства, как можно для монтажей сети с другими UIS. Для компьютеров, таких как смартфоны, таблетки и носимые компьютеры, которые не имеют возможности вставления физических носителей в устройствах. (Обратите внимание, насколько ужасный интерфейс iPhone предназначен для коммутации SIM-карт, один вид устройств IOS IOS вставил в них.

.

Примечание также, что другие популярные подходы к УИИ для этого типа физической коробки (например, Windows 98, Windows 8, Mac OS X V10.2 (Jaguar) и Mac OS X V10.9 (Mavericks)) запускаются в те же проблемы, и используют дополнительные диалоговые окна GUI для сортировки потенциальной путаницы (например, Windows 8 обычно настраивается Чтобы запросить каждый новый CD вставлен, следует ли установить его в качестве файловой системы, музыкальный носитель или, если это необходимо, коллекцию видео MP4). Нет причин, почему любой из этих пользовательских диалогов не может использоваться с Linux или другими Unixes.

0
27.01.2020, 19:31

То, что вы хотите, звучит как ssh-keys. Это позволяет создавать доверенные сети, для которых не требуется вводить пароли. Это также обеспечивает дополнительную безопасность, так что в сценарии отсутствует пароль в виде обычного текста.

На исходном компьютере:

ssh-keygen -t rsa -b 2048
Enter file in which to save the key (/root/.ssh/id_rsa): [Hit Enter]
Enter passphrase (empty for no passphrase): [Hit Enter]
Enter same passphrase again: [Hit Enter]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Теперь скопируйте открытый ключ на сервер назначения:

ssh-copy-id user@123.45.56.78
[OR]
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

Теперь в сценарии:

sftp -o "IdentityFile=/root/.ssh/id_rsa" user@123.45.56.78

Можно также сделать:

read -s -p "Enter Password: " password
sshpass -p $password sftp user@123.45.56.78

Где:

  • -s: не отображать пароль на экране
  • -p: «Password:»: Вывести текстовое сообщение
  • password: Bash переменная, в которой хранится ваш пароль
-121--175109-

Я сам понял:

xdotool mousemove 500 100 getmouselocation --shell mousemove restore

Это ненадолго переместит мышь в заданное положение (x = 500, y = 100 в данном примере), распечатает WINDOW , который является window id , а затем переместит мышь назад.

Это, вероятно, не предполагаемое использование mousemove, но я не мог найти лучшего способа сделать то, что я хотел.

-121--84515-

Заголовок вопроса спрашивает: Почему нам нужно монтировать в Linux?

Один из способов интерпретации этого вопроса: Почему нам нужно выдавать явные команды mount , чтобы сделать файловые системы доступными в Linux?

Ответ: мы не получаем.

Вам не нужно явно монтировать файловые системы, вы можете организовать его автоматическое выполнение, и дистрибутивы Linux уже делают это для большинства устройств, как это делают Windows и Mac.

Так что, вероятно, это не то, что вы хотели спросить.

Вторая интерпретация: Почему иногда нужно выдавать явные команды mount , чтобы сделать файловые системы доступными в Linux? Почему бы не сделать так, чтобы операционная система всегда делала это за нас, и скрыть это от пользователя?

Вот вопрос, который я читаю в тексте вопроса, когда вы спрашиваете:

Почему бы вообще не пропустить установку, и сделать следующее

ls /dev/cdrom

и иметь содержимое CD-ROM перечислены?

Предположительно, вы имеете в виду: почему бы этой команде не сделать то, что

ls /media/cdrom

делает сейчас?

В этом случае /dev/cdrom будет деревом каталогов, а не файлом устройства. Таким образом, ваш реальный вопрос, кажется,: почему файл устройства в первую очередь?

Я хотел бы добавить ответ на уже данные.

Почему пользователи могут видеть файлы устройств?

Всякий раз, когда вы используете компакт-диск или любое другое устройство, которое хранит файлы, используется программное обеспечение, которое интерпретирует все, что находится на вашем компакт-диске, как дерево файлов каталога. Он вызывается при каждом использовании ls или любого другого типа команды или приложения, которое обращается к файлам на компакт-диске. Это программное обеспечение является драйвером файловой системы для конкретной файловой системы, используемой для записи файлов на компакт-диск. Каждый раз, когда вы перечисляете, читаете или записываете файлы в файловой системе, это задача этого программного обеспечения, чтобы убедиться, что соответствующие низкоуровневые операции чтения и записи выполняются на данном устройстве.Всякий раз, когда вы монтируете файловую систему, вы сообщаете системе, какой драйвер файловой системы использовать для устройства. Независимо от того, выполняете ли вы это явно с помощью команды mount или оставляете ее в ОС для автоматического выполнения, это необходимо сделать, и, конечно, драйвер файловой системы программного обеспечения должен быть там в первую очередь.

Как драйвер файловой системы выполняет свою работу? Ответ: он делает это, читая из и записывая в файл устройства. Почему? Ответ, как вы уже заявили: Unix был разработан таким образом. В Unix файлы устройств являются обычной низкоуровневой абстракцией для устройств. Действительно специфичное для устройства программное обеспечение (драйвер устройства) для конкретного устройства должно реализовывать открытие, закрытие, чтение и запись на устройстве в качестве операций над файлом устройства. Таким образом, программное обеспечение более высокого уровня (например, драйвер файловой системы) не должно знать столько же о внутренней работе отдельных устройств. Низкоуровневые драйверы устройств и драйверы файловой системы могут быть написаны отдельно разными людьми, если только они согласуют общий способ взаимодействия друг с другом, и именно для этого предназначены файлы устройств.

Поэтому драйверы файловой системы нуждаются в файлах устройств.

Но почему мы, обычные пользователи, видим файлы устройств? Ответ заключается в том, что Unix был разработан для использования программистами операционной системы. Он был разработан, чтобы позволить своим пользователям писать драйверы устройств и драйверы файловой системы. Именно так они и пишутся.

То же самое относится и к Linux: можно написать собственный драйвер файловой системы (или драйвер устройства), установить его, а затем использовать. Это делает Linux (или любой другой вариант Unix) легко расширяемым (и это на самом деле причина, по которой Linux был запущен): когда на рынке появляется какая-то новая часть аппаратного обеспечения, или разработан новый, более умный способ реализации файловой системы, кто-то может написать код, чтобы поддержать его, заставить его работать, и внести его в Linux.

Файлы устройств упрощают эту задачу.

5
27.01.2020, 19:31

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

Сравните Windows: Windows запустилась как однокомпьютер, однопользовательская ОС. Этот единственный компьютер, вероятно, имел один дисковод из диска и один жесткий диск, нет сетевого подключения, нет USB, нет ничего. (Windows 3.11 имел собственные сетевые возможности; Windows 3.1 не .)

Вид установки Windows родился настолько простым, что не нужно было понадобиться: просто смонтировать все (все два Устройства) автоматически каждый раз, нет (не было) многое, что может пойти не так.

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

Одним из решений по проектированию UNIX заключалась в том, что файловая система должна появиться в виде единого равномерного объекта к конечным пользователям, независимо от того, сколько компьютеров были распространены физические диски, независимо от того, какой диск, и независимо от того, какой из Десятки компьютера пользователь получит его доступ от. Логический путь к файлам пользователя будет оставаться прежним, даже если физическое местоположение этих файлов изменилось в течение ночи, например, Из-за обслуживания сервера.

Они абстрагировали логическую файловую систему, путей к файлам из физических устройств, которые сохраняют эти файлы. Скажем, Server A обычно хостит / домой, но сервер A нуждается в обслуживании: просто размонтируйте сервер A и сервера резервного копирования сервера B on / Home, и ничем, кроме администраторов даже не заметит.
(В отличие от Конвенции Windows о предоставлении разных имен на разные физические устройства - C:, D:, и т. Д. - Что работает против прозрачности, на которой Unix стремится к.)

в таком виде настройки, вы можете T просто смонтируйте все видно Вилли-Неилли,

в большой сети, индивидуальные диски и компьютеры постоянно отсутствуют в совершении комиссии. Администраторы необходимо Возможность сказать, что установлено там, где и когда, например, E.G. Для выполнения контролируемого отключения одного компьютера в то время как другой компьютер прозрачно берет на себя хостинг одни и те же файлы.

Так вот почему из исторической перспективы: Windows и Unix пришли с разных фонов. Вы можете назвать это культурным разницей, если вам нравится:

  • UNIX родился в среде, где администратор должен контролировать монтаж; Из десятков устройств хранения в сети администратор должен решить, что смонтировано, где и когда.
  • Windows родилась в настройке, где не было никакого администратора, а только два устройства хранения, и пользователь, вероятно, знает, был ли их файл на дискете или жестком диске.
  • (Linux родился как однокомпьютерную ОС, конечно, но он также был явно спроектирован с начала имитировать Unix как можно ближе к домашнему компьютеру.)

Совсем недавно ОСВ Ближе друг к другу:

  • Linux добавил больше одного компьютера, однопользовательских вещей (например, Automounting); Как это часто использовалось в односмысленных параметрах.
  • Windows добавила дополнительную безопасность, сеть, поддержку нескольких пользователей и т. Д.; Поскольку сеть стала более повсеместно, и Microsoft также начала делать ОС для серверов.

Но все равно легко сказать, что два являются результатом разных традиций.

6
27.01.2020, 19:31

, потому что / dev / cdrom - это устройство, тогда как / СМИ / CDROM - это файловая система . Вам нужно установить первое на последнем, чтобы получить доступ к файлам на CD-ROM.

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

Все операционные системы делают это - однако некоторые (такие как Windows, когда он устанавливает CD-ROM на d: ) сделать это прозрачно. Linux оставляет его вам, чтобы у вас был больший контроль над процессом.

3
27.01.2020, 19:31

Теги

Похожие вопросы