linux 同一分区是否可挂载多个目录 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
leimbag
V2EX    Linux

linux 同一分区是否可挂载多个目录

  •  
  •   leimbag 2016-09-10 20:19:37 +08:00 23547 次点击
    这是一个创建于 3385 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前有 2 个硬盘, SSD 和 HDD , SSD 作为 /的系统盘,现在想把 /home 单独挂载到 HDD 上,同时还想建立一个 /data 目录,也是挂载到 HDD 硬盘上。 HDD 只建了一个分区 /dev/sdb1 , mount /dev/sdb1 /home 后,是否可以再通过执行 mount /dev/sdb1 /data 挂载。 我自己试了下,发下 data 和 home 目录是一样的内容。有无办法让 data 也挂载在 HDD 下,但是和 home 目录内容是独立的。 目的:统一使用 HDD 盘做数据盘,保存所有的数据,比如 /var 目录也挂载 HDD 下,难道只能一个目录一个分区吗?

    31 条回复    2017-03-18 23:31:23 +08:00
    k9982874
        1
    k9982874  
       2016-09-10 20:23:00 +08:00 via iPad
    1 、不可以
    2 、 ln
    leimbag
        2
    leimbag  
    OP
       2016-09-10 20:28:32 +08:00
    @k9982874 呃,没懂啥意思,能说具体点吗
    ahcat
        3
    ahcat  
       2016-09-10 20:32:39 +08:00 via iPhone
    可以。使用 mount --bind 可以将一个分区挂载在多个目录下。
    wwqgtxx
        4
    wwqgtxx  
       2016-09-10 20:33:25 +08:00 via iPhone
    用软连接就行了
    ahcat
        5
    ahcat  
       2016-09-10 20:33:48 +08:00 via iPhone
    看错了。 不可以直接挂载。但是可以将目录 mount 到目录。
    jyf007
        6
    jyf007  
       2016-09-10 20:37:30 +08:00 via Android
    aufs
    leimbag
        7
    leimbag  
    OP
       2016-09-10 20:41:04 +08:00
    @ahcat 呃,你的意思是 mount /data /home ?
    leimbag
        8
    leimbag  
    OP
       2016-09-10 20:43:41 +08:00
    @wwqgtxx 大侠,如果是软连接, data 和 home 都想用 /dev/sdb1 ,该如何操作?
    orzfly
        9
    orzfly  
       2016-09-10 21:03:33 +08:00
    Tink
        10
    Tink  
    PRO
       2016-09-10 21:08:00 +08:00
    这样不行吗?
    mount /dev/sdb1/home /home
    mount /dev/sdb1/data /data
    leimbag
        11
    leimbag  
    OP
       2016-09-10 21:48:36 +08:00
    @Tink 这样不行,/dev/sdb1/home 和 /dev/sdb1/data 不存在(路径前缀不是目录)
    orzfly
        12
    orzfly  
       2016-09-10 21:52:35 +08:00   1
    @leimbag 唉,你为什么无视了我的回复……

    我想说,你有一种选择是:
    mount /dev/sdb1 /mnt/sdb1
    Tink
        13
    Tink  
    PRO
       2016-09-10 21:52:38 +08:00
    @leimbag 这两个目录手动创建啊!
    orzfly
        14
    orzfly  
       2016-09-10 21:53:19 +08:00
    上面没发完……

    我想说,你有一种选择是:
    mount /dev/sdb1 /mnt/sdb1
    mount --bind /mnt/sdb1/data /data
    mount --bind /mnt/sdb1/home /home

    也有一种选择是:
    mount /dev/sdb1 /home
    mount --bind /home/data /data
    orzfly
        15
    orzfly  
       2016-09-10 21:53:41 +08:00
    @Tink /dev/sdb1 是个设备文件,不是挂载点。
    Tink
        16
    Tink  
    PRO
       2016-09-10 22:05:41 +08:00
    @orzfly 哦对,表达错了,意思就是让他挂到 sdb1 下的两个目录里
    leimbag
        17
    leimbag  
    OP
       2016-09-10 22:35:37 +08:00
    @orzfly 不好意思,谢谢你的回复,刚才在看你发的那个链接, mount --bind /home/data /data 这个试过了,可以用,就是感觉有点不优雅。你说的
    mount /dev/sdb1 /mnt/sdb1
    mount --bind /mnt/sdb1/data /data
    mount --bind /mnt/sdb1/home /home
    意思是在 /mnt 下建个目录,再分别建 bind ? 那在 /etc/fstab 里面是否需要永久绑定 /mnt/sdb1 的 uuid 就行了?其他的不用在 /etc/fstab 下做永久启动绑定了吧?
    leimbag
        18
    leimbag  
    OP
       2016-09-10 22:37:52 +08:00
    还有其他更优雅高级的方式吗?解决同分区下多个独立目录的情况。 LVM 是否可行?单加 /dev/sdb1 作为独立物理卷,然后建各种分区再做挂载,是否有这个必要?求大神 指点
    leimbag
        19
    leimbag  
    OP
       2016-09-10 22:46:51 +08:00
    @orzfly 如果 按你说的 /mnt/sdb1 这种方式,整个 HDD 硬盘采用一个分区足够了吧,都挂载到 /mnt/sdb1 这个目录下。在纠结要不要用 LVM 建多个逻辑分区的方式。求指教。
    wwqgtxx
        20
    wwqgtxx  
       2016-09-10 23:16:22 +08:00 via iPhone
    @leimbag 把 data 给 ln -s 到 home 不就行了
    leimbag
        21
    leimbag  
    OP
       2016-09-10 23:37:30 +08:00
    @wwqgtxx 感谢,可以,只不过在 home 下会有个 data->/data 的软连,感觉不是很优雅。
    orzfly
        22
    orzfly  
       2016-09-10 23:47:51 +08:00 via Android
    @wwqgtxx 不是所有的程序都可以和软连接很好的工作……
    wwqgtxx
        23
    wwqgtxx  
       2016-09-10 23:51:11 +08:00 via iPhone
    @orzfly 貌似还没遇到对软连接支持不好的程序
    guizer
        24
    guizer  
       2016-09-11 01:19:59 +08:00 via iPhone   1
    mount /dev/sdb1/ /mnt
    mkdir /mnt/{data,home}
    mount /mnt/data /data
    mount /mnt/hone /home


    这样或许可以
    ryd994
        25
    ryd994  
       2016-09-11 03:37:15 +08:00 via Android
    @orzfly 那就用硬链啊,或者 bind mount ,直接在底层,和普通文件一样
    Arthur2e5
        26
    Arthur2e5  
       2016-09-11 06:04:21 +08:00
    @leimbag 同分区多个独立目录哪里不优雅了?没有多余分区,可以共享存储……高级? Linux 平常不吃那套,你真高兴可以玩 btrfs-subvolume 。

    > 其他的不用在 /etc/fstab 下做永久启动绑定了吧?

    你的 bind 也需要 fstab 作绑定啊。 https://serverfault.com/questions/613179/how-do-i-do-mount-bind-in-etc-fstab
    leimbag
        27
    leimbag  
    OP
       2016-09-11 11:15:30 +08:00
    @Arthur2e5 感谢, 目录的 bind 确实需要在 fstab 做绑定
    UUID=56239839-fd52-4b2c-b14a-7c653cef0707 /mnt/sdb1 xfs defaults 0 0
    /mnt/sdb1/home /home none bind 0 0
    /mnt/sdb1/data /data none bind 0 0
    采用以上方式修改 fstab ,重启也能发现 home 和 data

    通过 mount 可以看到 home 和 data 都挂载 /dev/sdb1 下面,但是 通过 df 命令,无法查看到 home 的挂载情况,只有 data 的挂载,如下:
    /dev/sdb1 1905108984 80788 1905028196 1% /data

    有什么办法能 使用 df 显示 home 和 /mnt/sdb1 的 df 情况呢?

    我说的不优雅, 主要之前在 home 下建立一个 data 然后挂载 data 到 /home/data,或使用 ln 会产生软连接,或使用 bind 会影响 home 的内容,当然可以换个目录不在 home 下,比如 mnt/sdb1 这样的,感觉上会好的。我也很喜欢同分区多独立目录方式,只是不想让目录交叉混乱而已,希望有个清晰的目录结构和分区挂载 情况。
    leimbag
        28
    leimbag  
    OP
       2016-09-11 11:16:20 +08:00
    @guizer 感谢,采用了类似的方式,只是 df 无法正常显示。
    skydiver
        29
    skydiver  
       2016-09-11 12:37:12 +08:00 via Android
    @leimbag df 是按照分区显示的…你这样当然显示不了
    guizer
        30
    guizer  
       2016-09-12 12:23:36 +08:00 via iPhone
    @leimbag
    哈哈,我瞎蒙的,能用就好
    cheek
        31
    cheek  
       2017-03-18 23:31:23 +08:00
    我的树莓 就把同一分区挂到 2 个目录上了,系统基本正常
    /dev/root 15G 8.4G 5.6G 60% /
    /dev/root 15G 8.4G 5.6G 60% /mnt/thunder

    /dev/root 连接的是 /dev/mmcblk0p2 分区,

    不知道怎么就成这样了,导到迅雷下载时 有时文件会丢失,应该是被覆盖了,

    其实第二条绑定的命令是用 mount --bind /root/thunder /mnt/thunder ,但 df 显示是 /dev/root 绑到了 /mnt/thunder
    有遇到类似的情况吗?不知道怎么解决了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1299 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 17:12 PVG 01:12 LAX 09:12 JFK 12:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86