[问题] 档案系统与mount观念不懂

楼主: scitamehtam (scitamehtam)   2021-12-27 08:58:34
小弟对硬件不是很熟

目前看书看到mount指令

mount是将档案系统与目录连结起来

但我很好奇的是

硬盘是否在开机之后就自动mount起来了呢?

会有此疑问主要是因为

目录里面本来就有 /dev了

然后书本每次讲到挂载都类似用

/dev/sda 到一个自建目录

例如 /data/xxx

/dev/* 本身不就是目录一部分了吗

干嘛还要挂载到其他目录呢?
作者: yaurtusn (擎天岗小牛)   2021-12-27 19:48:00
从最初的起点发想,操作员将硬盘给挂载到主机联接器上.很早很早的时期的人工动作与沿用至今的拟人化电脑指令
楼主: scitamehtam (scitamehtam)   2021-12-27 15:52:00
对啊,刚刚看了一下,除了 /dev/下的虚拟硬盘之外,还有一些像是cgroup, tmpfs, devpts...等等..
作者: bitlife (BIT一生)   2021-12-27 18:37:00
其实用个最简单的讲法,你把windows的挂载想成决定给哪个磁盘机编号(在D: ~ Z:中选一个),而linux没有磁盘机编号这种东西,全部就是以/开始的单一颗树,那么相对于windows要选D:~Z:中的其中一个,在linux中你要决定某个目录做为挂载上去的[位置]而那些/dev/xyz 就对应于windows你装上硬盘或随身碟后显示的硬件装置
楼主: scitamehtam (scitamehtam)   2021-12-27 16:09:00
此目录的资料在系统重启后,会消失,且存取此目录的速度较快有比较清楚了,感谢各位神人解释
作者: yasamnoya (拎不拎不拎_吴拎)   2021-12-27 15:52:00
mount 实务上更大的意义是透过 high level 的 file system 去存取,否则直接从 /dev 底下只能读到 raw data。你可以想想为什么 image 明明就已经是档案了却还需要mount 过后才能用
作者: CP64 (( ̄▽ ̄#)﹏﹏)   2021-12-27 15:41:00
然后关于这方面的话 其实打 mount 不加任何参数在清单里其实可以看到还有很多目录都是 mount 在不是硬盘的目录上^^^^装置才对 一个打错
楼主: scitamehtam (scitamehtam)   2021-12-27 15:40:00
感谢说明
作者: CP64 (( ̄▽ ̄#)﹏﹏)   2021-12-27 15:35:00
是啊但是重点是说其实 mount 这个动作只是代表说
楼主: scitamehtam (scitamehtam)   2021-12-27 15:35:00
只有这个目录是这样吗? 其他系统中的目录应该不是
作者: CP64 (( ̄▽ ̄#)﹏﹏)   2021-12-27 15:34:00
然后他的驱动就是决定如何操作 kernel 里面的状态这样
作者: cancelpc (阿吉)   2021-12-27 09:01:00
/dev/只是单纯找到的硬件如硬盘并不是找到就可以用得切分割区等,格式化成可管理空间透过mount挂载,Windows 也是阿
作者: Bencrie   2021-12-27 09:26:00
/dev 里面放一些 device nodes,虽然 rootfs 里面会有东西。不过一般还是挂 devtmpfs 还有 devptsrootfs 是在 initramfs 期间挂起来,其他 fstab 内的由init 帮你挂载
作者: hizuki (ayaka)   2021-12-27 10:01:00
不可以这样理解,device node不是mount上去的,/dev是可以被mount上去,或者静态管理(Android)。/dev下理解为kernel和userspace配合表现设备状况为佳
楼主: scitamehtam (scitamehtam)   2021-12-27 15:34:00
但目录与装置不是要透过mount连结吗? 还是说其实/dev/里面已经被系统自动挂载到硬盘了呢
作者: CP64 (( ̄▽ ̄#)﹏﹏)   2021-12-27 16:05:00
这个目录的操作会由 tmpfs 这个驱动处理而这个驱动的操作是对内存操作 代表这边的资料关机会消失
作者: CP64 (( ̄▽ ̄#)﹏﹏)   2021-12-27 15:18:00
挂载相当于说把这个目录底下的档案系统操作交给对应的装置而 /dev/ 底下的东西是对应到装置 (eg. /dev/sda1)当你 /dev/sda1 挂到 /mnt/ 底下时是告诉系统说把这个目录底下的读写交给 /dev/sda1然后像 ext4 档案系统驱动就是决定说要怎么在这装置上读写/dev/ 其实也是目录 只是他后面对应的是一个虚拟装置更准确来说那个虚拟装置其实是 kernel
作者: yasamnoya (拎不拎不拎_吴拎)   2021-12-27 15:53:00
以上说的是 mount 储存设备的情况
作者: LinBuoRen (林博仁)   2021-12-27 14:04:00
挂载是档案系统的概念,与硬件装置的概念要区分开来在 Unix 档案系统中大部分的东西都会用档案来呈现更正:档案系统 -> 作业系统
作者: roccqqck (ccqq)   2021-12-27 12:17:00
写到/etc/fstab就会开机自动挂
作者: giraffe4527 (鹿)   2021-12-27 11:32:00
那可以cd进/dev下ls -al看,sda那些设备是block档根本不是目录你怎么可能直接读,dev底下的设备只能用parted dd fsck这类针对block的去写
作者: tomsawyer (安安)   2021-12-28 16:12:00
windows实际上也是 \\.\physicaldrive\c\下去读取吧没记错的话
作者: CP64 (( ̄▽ ̄#)﹏﹏)   2021-12-28 22:34:00
是啊 只是他不会把这个路径直接放在档案系统里
作者: Hurricaneger (裤袜脱落大尉)   2021-12-28 22:50:00
把/dev/sda想成A磁盘机,要把它拿来启用就要去硬盘管理工具里面看看它被读到没?有找到他的话就可以按右键新增磁盘区,选个代号A,再快速格式化,就等于在Windows mount好加挂开机可读写了。跟Linux上mount一个硬盘几乎一模一样,一开始记得这个就好,之后就跟捷径一样随便mount一个舒服的资料夹就可以了。
作者: bitlife (BIT一生)   2021-12-29 05:43:00
windows那个是相容于c语言,浏览器的路径表示法,虽然表示成单一树根的型式,但根路径变成\\,然后必须得有磁盘机编号A-Z(拿掉冒号),等于只是把原先分立的A:-Z:的树强行变成子树,实质上还是有A:-Z:的存在,而且A,B专门给软碟,在较早版本中,C还只能是物理上第一个(开机)硬盘
作者: abcdefghi   2020-01-03 13:01:00
linux档案有分成一般档案和特殊档案,特殊档案有majornumber和minor number,透过这一组数字,可以让程式和硬盘的驱动程式互动,所以sda,sdb或是其他在/dev下的档案代表哪个装置,可以看这一组数字,再来就是每一颗硬盘上的档案系统都是树状的,所以你可以用mount的方式把一颗树挂到原有的小树上,慢慢成一颗大树,也就是完整linux目录结构
作者: sppmg (sppmg)   2020-01-05 08:55:00
虽然上面神人很多了,但我还是说一下。*nix 系统中将任何东西都视为档案(近几年有没有改变我不确定),所以一开机就会辨认到硬盘(区块装置),并被给予 /dev 路径。mount 就像是找人来做翻译,让使用者可以以另一种方式皆由挂载目录来做操作。mount 不一定对真实硬盘,像是iso, 压缩档, 远端储存空间, 多层次叠加空间(unionfs, overlayfs) 都会用到。
作者: roccqqck (ccqq)   2020-01-10 13:15:00
一开始遇到lvm, pv vg lv才是真的搞超乱
作者: chang0206 (Eric Chang)   2020-01-12 14:01:00
推楼上 现在面对LVM也还是很容易就乱了
作者: yaurtusn (擎天岗小牛)   2020-02-13 11:54:00
敝某因时间有限 因清理掉一部PC主机 暂时没空使用linux

Links booklink

Contact Us: admin [ a t ] ucptt.com