作者scitamehtam (scitamehtam)
看板Linux
标题[问题] 档案系统与mount观念不懂
时间Mon Dec 27 08:58:34 2021
小弟对硬体不是很熟
目前看书看到mount指令
mount是将档案系统与目录连结起来
但我很好奇的是
硬碟是否在开机之後就自动mount起来了呢?
会有此疑问主要是因为
目录里面本来就有 /dev了
然後书本每次讲到挂载都类似用
/dev/sda 到一个自建目录
例如 /data/xxx
/dev/* 本身不就是目录一部分了吗
干嘛还要挂载到其他目录呢?
----
Sent from
BePTT on my iPhone 12
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.12.20.59 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1640566716.A.F5E.html
1F:推 cancelpc: /dev/只是单纯找到的硬体12/27 09:01
2F:→ cancelpc: 如硬碟并不是找到就可以用12/27 09:01
3F:→ cancelpc: 得切分割区等,格式化成可管理空间12/27 09:02
4F:→ cancelpc: 透过mount挂载,Windows 也是阿12/27 09:03
5F:推 Bencrie: /dev 里面放一些 device nodes,虽然 rootfs 里面会有12/27 09:26
6F:→ Bencrie: 东西。不过一般还是挂 devtmpfs 还有 devpts12/27 09:27
7F:推 Bencrie: rootfs 是在 initramfs 期间挂起来,其他 fstab 内的由12/27 09:31
8F:→ Bencrie: init 帮你挂载12/27 09:32
我可以这样理解吗?
开机後,系统把我的硬碟先挂载到 /dev/sd*
若开机後我下指令
mount /dev/sda /mypath/data
意思是说
我将已经挂载於 /dev/sda的档案系统或者硬体(硬碟)
重新挂载到自订目录 /mypath/data 吗?
之後我要操作硬碟就直接操作
/mypath/data就好
※ 编辑: scitamehtam (101.12.20.59 台湾), 12/27/2021 09:45:40
9F:→ hizuki: 不可以这样理解,device node不是mount上去的,/dev是可以12/27 10:01
10F:→ hizuki: 被mount上去,或者静态管理(Android)。/dev下理解为kernel12/27 10:02
11F:→ hizuki: 和userspace配合表现设备状况为佳12/27 10:03
12F:→ giraffe4527: 那可以cd进/dev下ls -al看,sda那些设备是block档12/27 11:32
13F:→ giraffe4527: 根本不是目录你怎麽可能直接读,dev底下的设备只能12/27 11:32
14F:→ giraffe4527: 用parted dd fsck这类针对block的去写12/27 11:32
15F:推 roccqqck: 写到/etc/fstab就会开机自动挂12/27 12:17
16F:→ LinBuoRen: 挂载是档案系统的概念,与硬体装置的概念要区分开来12/27 14:04
17F:→ LinBuoRen: 在 Unix 档案系统中大部分的东西都会用档案来呈现12/27 14:05
18F:→ LinBuoRen: 更正:档案系统 -> 作业系统12/27 14:06
19F:→ CP64: 挂载相当於说把这个目录底下的档案系统操作交给对应的装置12/27 15:18
20F:→ CP64: 而 /dev/ 底下的东西是对应到装置 (eg. /dev/sda1)12/27 15:19
21F:→ CP64: 当你 /dev/sda1 挂到 /mnt/ 底下时12/27 15:20
22F:→ CP64: 是告诉系统说把这个目录底下的读写交给 /dev/sda112/27 15:21
23F:→ CP64: 然後像 ext4 档案系统驱动就是决定说要怎麽在这装置上读写12/27 15:21
综合以上,我可以说
/dev/sda 等等其实不算是目录
而是代表某个硬体储存装置
真正要能操作他们,需要透过 mount 指令
让他对应到系统下面的一个目录,如:~/
之类的吗? 只有 /dev/* 这个例外,其他都算是目录吗
例如: /, /etc, /var...
※ 编辑: scitamehtam (101.12.48.201 台湾), 12/27/2021 15:27:46
24F:→ CP64: /dev/ 其实也是目录 只是他後面对应的是一个虚拟装置12/27 15:29
25F:→ CP64: 更准确来说那个虚拟装置其实是 kernel12/27 15:33
26F:→ scitamehtam: 但目录与装置不是要透过mount连结吗? 还是说其实12/27 15:34
27F:→ scitamehtam: /dev/里面已经被系统自动挂载到硬碟了呢12/27 15:34
28F:→ CP64: 然後他的驱动就是决定如何操作 kernel 里面的状态这样12/27 15:34
29F:→ scitamehtam: 只有这个目录是这样吗? 其他系统中的目录应该不是12/27 15:35
30F:→ CP64: 是啊但是重点是说其实 mount 这个动作只是代表说12/27 15:35
31F:→ scitamehtam: ?12/27 15:35
32F:→ CP64: 这个目录下的操作会转交到其他系统物件 并不一定是硬碟12/27 15:35
33F:→ CP64: 像 /dev/ 在启动时的确是被自动挂载上前述的虚拟装置12/27 15:36
34F:→ scitamehtam: 感谢说明12/27 15:40
35F:→ CP64: 然後关於这方面的话 其实打 mount 不加任何参数12/27 15:41
36F:→ CP64: 在清单里其实可以看到还有很多目录都是 mount 在不是硬碟的12/27 15:42
37F:→ CP64: 目录上12/27 15:42
38F:→ CP64: ^^^^装置才对 一个打错12/27 15:44
39F:推 yasamnoya: mount 实务上更大的意义是透过 high level 的 file sys12/27 15:52
40F:→ yasamnoya: tem 去存取,否则直接从 /dev 底下只能读到 raw data12/27 15:52
41F:→ yasamnoya: 。你可以想想为什麽 image 明明就已经是档案了却还需要12/27 15:52
42F:→ yasamnoya: mount 过後才能用12/27 15:52
43F:→ scitamehtam: 对啊,刚刚看了一下,除了 /dev/下的虚拟硬碟之外12/27 15:52
44F:→ scitamehtam: ,还有一些像是cgroup, tmpfs, devpts...等等..12/27 15:52
45F:→ yasamnoya: 以上说的是 mount 储存设备的情况12/27 15:53
刚刚查了一下 tmpfs 好像是,资料主要是短暂的
系统重起就会消失,类似ramdisk概念
又指令 mount
出现
tmpfs on /dev/shm/
表示此目录的资料具有 tmpfs的特性意思吗
※ 编辑: scitamehtam (101.12.48.201 台湾), 12/27/2021 16:03:54
46F:→ CP64: 这个目录的操作会由 tmpfs 这个驱动处理 12/27 16:05
47F:→ CP64: 而这个驱动的操作是对记忆体操作 代表这边的资料关机会消失 12/27 16:06
48F:→ scitamehtam: 此目录的资料在系统重启後,会消失,且存取此目录 12/27 16:09
49F:→ scitamehtam: 的速度较快 12/27 16:09
50F:→ scitamehtam: 有比较清楚了,感谢各位神人解释 12/27 16:09
51F:→ bitlife: 其实用个最简单的讲法,你把windows的挂载想成决定给哪个 12/27 18:37
52F:→ bitlife: 磁碟机编号(在D: ~ Z:中选一个),而linux没有磁碟机编号这 12/27 18:37
53F:→ bitlife: 种东西,全部就是以/开始的单一颗树,那麽相对於windows要 12/27 18:38
54F:→ bitlife: 选D:~Z:中的其中一个,在linux中你要决定某个目录做为挂载 12/27 18:39
55F:→ bitlife: 上去的[位置] 12/27 18:39
56F:→ bitlife: 而那些/dev/xyz 就对应於windows你装上硬碟或随身碟後显 12/27 18:39
57F:→ bitlife: 示的硬体装置 12/27 18:40
58F:→ yaurtusn: 从最初的起点发想,操作员将硬碟给挂载到主机联接器上. 12/27 19:48
59F:→ yaurtusn: 很早很早的时期的人工动作与沿用至今的拟人化电脑指令 12/27 19:49
60F:→ tomsawyer: windows实际上也是 \\.\physicaldrive\c\下去读取吧 12/28 16:12
61F:→ tomsawyer: 没记错的话 12/28 16:12
62F:→ CP64: 是啊 只是他不会把这个路径直接放在档案系统里 12/28 22:34
63F:推 Hurricaneger: 把/dev/sda想成A磁碟机,要把它拿来启用就要去硬碟 12/28 22:50
64F:→ Hurricaneger: 管理工具里面看看它被读到没?有找到他的话就可以 12/28 22:50
65F:→ Hurricaneger: 按右键新增磁碟区,选个代号A,再快速格式化,就等 12/28 22:50
66F:→ Hurricaneger: 於在Windows mount好加挂开机可读写了。 12/28 22:50
67F:→ Hurricaneger: 跟Linux上mount一个硬碟几乎一模一样,一开始记得 12/28 22:52
68F:→ Hurricaneger: 这个就好,之後就跟捷径一样随便mount一个舒服的资 12/28 22:52
69F:→ Hurricaneger: 料夹就可以了。 12/28 22:52
70F:→ bitlife: windows那个是相容於c语言,浏览器的路径表示法,虽然表示 12/29 05:43
71F:→ bitlife: 成单一树根的型式,但根路径变成\\,然後必须得有磁碟机编 12/29 05:44
72F:→ bitlife: 号A-Z(拿掉冒号),等於只是把原先分立的A:-Z:的树强行变成 12/29 05:45
73F:→ bitlife: 子树,实质上还是有A:-Z:的存在,而且A,B专门给软碟,在较早 12/29 05:46
74F:→ bitlife: 版本中,C还只能是物理上第一个(开机)硬碟 12/29 05:47
75F:推 abcdefghi: linux档案有分成一般档案和特殊档案,特殊档案有major 01/03 13:01
76F:→ abcdefghi: number和minor number,透过这一组数字,可以让程式和 01/03 13:02
77F:→ abcdefghi: 硬碟的驱动程式互动,所以sda,sdb或是其他在/dev下的档 01/03 13:05
78F:→ abcdefghi: 案代表哪个装置,可以看这一组数字,再来就是每一颗硬 01/03 13:06
79F:→ abcdefghi: 碟上的档案系统都是树状的,所以你可以用mount的方式把 01/03 13:07
80F:→ abcdefghi: 一颗树挂到原有的小树上,慢慢成一颗大树,也就是完整 01/03 13:09
81F:→ abcdefghi: linux目录结构 01/03 13:09
82F:推 sppmg: 虽然上面神人很多了,但我还是说一下。*nix 系统中将任何东 01/05 08:55
83F:→ sppmg: 西都视为档案(近几年有没有改变我不确定),所以一开机就 01/05 08:55
84F:→ sppmg: 会辨认到硬碟(区块装置),并被给予 /dev 路径。mount 就 01/05 08:55
85F:→ sppmg: 像是找人来做翻译,让使用者可以以另一种方式皆由挂载目录 01/05 08:55
86F:→ sppmg: 来做操作。mount 不一定对真实硬碟,像是iso, 压缩档, 远端 01/05 08:55
87F:→ sppmg: 储存空间, 多层次叠加空间(unionfs, overlayfs) 都会用到。 01/05 08:55
88F:推 roccqqck: 一开始遇到lvm, pv vg lv才是真的搞超乱 01/10 13:15
89F:→ chang0206: 推楼上 现在面对LVM也还是很容易就乱了 01/12 14:01
90F:→ yaurtusn: 敝某因时间有限 因清理掉一部PC主机 暂时没空使用linux 02/13 11:54