细说linux挂载——mount

http://blog.sina.com.cn/s/blog_54f82cc201011j7u.html

http://forum.ubuntu.org.cn/viewtopic.php?f=120&t=257333

linux的系统组织方式是——整个系统从根开始,按树形目录依次向下逐渐扩大,分类存放不同用途的文件,/读作“斜线”,英文slash;当其写作一个路径时,第一个/表示根,即root,其他的/表示路径分割符,但都读作“斜线”或“slash”。

系统启动时,首先有一个分区被挂载到了/,可以理解为该分区被分配了/这个奇怪“盘符”(注意,在windows里,这个符号被用做命令参数引导符号,而反斜线\,英文backslash作为路径分割符,习惯不同而已,就像英国行车靠左一样,没啥可奇怪的)。
这个被挂载为/的分区,就叫做根分区(不管它是主分区还是逻辑分区),它从此开始在整儿linux系统里具有了特殊的地位,因为整儿电脑里的所有硬盘,包括其上的所有其他分区,不管是主分区、逻辑分区,都将以这个“根分区”为主干,开始构造linux大树,并最终成为这颗树上的一个分支或树叶。整个linux的系统结构里,有且只有一个root(根分区),不可能有第二个(其实,任何一个分区,都可以挂载为/,windows分区也可以。只不过挂载根分区的目的是启动系统,如果/下面没有linux内核及其所需的系统文件的话,将无法引导系统而已。所以这个根分区并不神秘)。

你的其他分区只能被继续挂载到/(根分区)下的某个目录里,比如“/mnt”或者“/media”或者“/什么什么”目录,看你喜欢喽。挂载好之后,当你向这个目录读写数据的时候,其实是在向被挂载到该目录的另一个分区读写数据。多个分区在同一个时候只能被挂载到多个不同的目录,比如“/mnt/a”、“/media/123”或者“/home/anywhere”,任何一个处于/之下的目录,都可以用来作为挂载其他分区的“平台”,当然系统需要的目录可不要用哈,你自己新建你自己的用吧。
挂载好之后,你硬盘里的数据,就可以通过类似/path/to/anywhere这样的方式找到;如果没有挂载就找不到喽。
用一个庸俗的比喻来说,“/”相当于c:\,而“/etc、/bin、/sbin、/lib”这些目录大概相当于c:\windows和c:\program files,“/home”相当于c:\Documents andSettings,而当你把第二分区挂载到“/mnt/partition2”的时候,这个目录就相当于d:\了,你地明白?

不信就挂一次试试:

代码:
cd /mnt                        (切换到/mnt目录)
sudo mkdir partition2        (新建一个名为partition2的空目录,你可以随意用其他名称)
sudo mount /dev/sda5 partition2    (如果你只有一个硬盘且第二分区是逻辑分区的话,这个命令就将挂载该分区到partition2)
cd partition2                (切换到/mnt/partition2目录)
ls                            (列出该目录的文件)

这样应该可以看到你的D盘下的文件了。
既然能挂载就一定能反挂载:
代码:
sudo umount /dev/sda5    (或者/mnt/partition2)

这个命令将“卸载”该分区,现在你再看会发现partition2又是空目录了。

到这里,有人可能会说“linux太麻烦了,我有十几个分区,难道让我每次都要敲几十行命令?为什么不像windows那样启动时就全给我自动挂上呢?”
:idea: 1.我是说过要敲命令,可我没说过“每次”!下面将会介绍的 fstab文件 将会使你在这件事上一劳永逸的解决问题;事实上,甚至还有一种“零”劳永逸的方法,你甚至一个命令都不用敲,点几下鼠标就好了;
:idea: 2.像windows那样全自动挂上?也没有问题啊,装上一两个软件即可,不过我想提醒你:
这样真的好吗?未必。我可以肯定,你大多数时间只会使用几个特定的分区;再退一步讲,即使你是例外,但你也应该为别人想想吧?比如我,有一个分区有“敏感”数据(是啥你自己猜),而且不常用,以前用windows的时候,我对这种做法就很讨厌,谁都可以随便瞅一瞅,不好!后来全搬家到linux分区了,平时不挂载,要用才挂上,哈哈哈,我的系统我做主!从此不再受那微软的苦~~~
:idea: “像windows那样”,你的脑子里为什么每时每刻都在这样想?是因为windows的方法最“好”?也未必,顶多只是你习惯了“那样”而已。试想如果你从来都用linux的“这样”,然后有一天我突然给你一台windows电脑的时候,你也一样会疑惑的问我:“我的家目录哪去了?”,“为什么不能搞得像linux那样?”。
承认了吧,所谓“最好”的“那样”是没有的,除了你那个有衰老迹象的思维里,哪儿都没有!赶快活动活动吧。

一个例子______________________________________________________________
     (这就是著名的根)
├── bin       (你在终端运行的大多数程序,比如cp、mv...)
├── boot       (内核放在这里,这个目录也经常被作为某个独立分区的挂载点)
│   └── grub  (grub引导程序和引导菜单就放在这里)
├── cdrom
├── dev       (存放设备文件,这里相当于一个设备管理器,由系统自动生成。视硬件环境不同变化很大)
│   ├── block
│   ├── bsg
│   ├── bus
│   ├── char
│   ├── disk      (磁盘信息,要挂载硬盘分区就要注意这里的信息喽)
│  │   ├── by-id    (硬盘分区的永久性符号链接)
│  │   ├──by-label  (按卷标识别的硬盘分区,常用于挂载)
│  │   ├── by-path  (硬盘分区的节点链接)
│  │   └── by-uuid  (按UUID识别的硬盘分区,常用于挂载)
│   ├── dri
│   ├── fd
│   ├── input
│   ├── net
│   ├── pts
│   ├── shm
│   └── snd
├── etc       (存放所有程序和系统的配制文件和全局变量,对所有用户生效,非常值得备份)
├── home       (这就是著名的home目录了,注意不是”家目录”,强烈建议把一个独立分区挂载到这里!)
│   ├── adagio  (这才是我真正的家!一般来说目录名就是帐号名,当然也可以不是,随便。命令行中用波浪线~代表这里)
│   ├── MNT    (这是我挂载其它硬盘分区的地方,你可以看到用硬盘品牌、容量或用途区分的目录名)
│  │   ├──MAX40NT1   (迈拓40G)
│  │   ├──ST160NT1  (希捷160G第一分区,下面两个类似)
│  │   ├── ST160NT2
│  │   ├── ST160SYS
│  │   ├── ST320G    (希捷320G)
│  │  │   ├── MOVIE
│  │  │   ├── MUSIC
│  │  │   └── P2P  (电驴、BT的缓冲区)
│  │   ├── ST80G    (希捷80G)
│  │  │   ├── PROGRAM
│  │  │   ├── ST80PE
│  │  │   └── YEAR
│  │   └── WD1000     (西数1T)
│  │      ├── WD2
│  │      ├── WD3
│  │      ├── WD5
│  │      ├── WD6.Lib
│  │      └── WD7
│   └── test  (我建立的另一个帐号的家目录,专门用于测试,一旦搞到无法收拾的地步,只需简单的
│            把里面的所有文件删除,就可以恢复默认。实际上你可以拥有无数个帐号)
├── lib       (所有程序共享的库文件)
├── lost+found  (磁盘扫描出现的丢失的数据)
├── media     (你在文件管理器里点击后自动挂载的分区就在这里,按卷标命名,没有卷标则按大小命名)
├── mnt       (同样用于挂载磁盘,这是最传统的位置,喜欢挂哪里随便)
├── opt       (某些特殊的程序喜欢把数据放在这里,比如JAVA)
├── proc       (当前系统所有的详细信息,这里的”文件”并不存在于硬盘中,而是在内存或缓存里,每次启动后都不一样)
├── root      (这是系统最高权威root用户的家!他是老大,所以不住在/home里,那里是草民住的)
├── sbin       (类似/bin,存放常用程序,但这里的程序都是要命的啊,比如格式化,所以只有root用户或sudo程序有权使用)
├── srv       (一些服务所要访问的文件)
├── sys       (系统的核心文件,类似/proc,不必管它)
├── tmp       (存放临时文件,所有用户均可使用,不过你要小心啊,这里的所有文件一旦重启就全没了,自动清空的)
├── usr       (你在X下使用的所有程序数据都在这里了,包括图标、manual等。所有用户都可以使用。也是最庞大的目录)
└── var       (variation,顾名思义就是变量,这里存放系统中经常变化的数据。和/tmp不同啊,很有用的地方)
    ├── backups
    ├── cache
   │   └── apt
   │       └──archives (存放你安装的所有程序的deb包!重装系统时太有用了,一定要备份好,到时候放回来。
    │       我建议把整儿/var单独挂载到一个独立分区,像/home一样。这样你重装好系统后,只
    │        需要简单的把整儿分区挂载到/var就行了,省去了备份-还原的时间。要知道这些deb包
    │       可不是几十M而已,而是有可能几百M、几个G,一来一回可够呛的。你也可以单独挂载
    │       个分区到/var/cache/apt/archives,其他的都不要。
    │       当然,这样又增加了一点系统构造的复杂度,喜欢怎样请自己斟酌。)
    ├── crash
    ├── games
    ├── lib
    ├── local
    ├── lock
    ├── log    (呵呵,这里的文件是系统运行的完整记录,出了问题一定要来这里看看)
    ├── mail    (这里是存放所有用户email的地方)
    ├── opt
    ├── run
    ├── spool
    └── tmp


OK,现在咱们再具体一点,用我的ubuntu的启动过程来做个实例,看看linux是怎么逐步种出这颗大树的。
首先还是说一句,你必需知道UUID是啥玩意儿,或者至少要明白hda、sdc这些编号是啥意思。否则肯定是鸡同鸭讲了。

grub

__________________________________________________________

:idea: 系统启动当然是从grub开始了,请打开你的 /boot/grub/grub.cfg 文件,找到类似下面这一段(以下以grub2的菜单为样本,grub0.97的menu.lst其实也类似)。
代码:
menuentry "Ubuntu 9.10, kernel 2.6.31-17-generic" {
search --no-floppy --fs-uuid --setf1bafdd4-73c2-44b2-9a62-d50a2da4d019
linux /boot/vmlinuz-2.6.31-17-genericroot=UUID=f1bafdd4-73c2-44b2-9a62-d50a2da4d019 ro splash
initrd /boot/initrd.img-2.6.31-17-generic
}

也可能是这个样子
代码:
menuentry "Ubuntu 9.10, kernel 2.6.31-17-generic" {
set root=(hd2,6)
linux /boot/vmlinuz-2.6.31-17-generic root=/dev/sdc5 rosplash
initrd /boot/initrd.img-2.6.31-17-generic
}

这是一个标准的ubuntu引导菜单,menuentry那一行仅仅显示了该项目的名称(包括了后面被花括号围住的所有语句),不必管它;
第二行开始,才真正进入linux系统的引导过程,search顾名思义就是要寻找喽,找什么呢?找内核。
打开你的/boot目录,看看是不是有一个名 为vmlinuz-xxxxx的文件,大小一般在10M以内,这就是有名的linux内核。
有了内核,你就有了半个linux操作系统,可以开始引导系统了。
第三行的linux/boot/vmlinuz-2.6.31-17-generic 这部分,linux是一个指令,它告诉grub程序:“请使用后面给出的这个内核”,于是名为“/boot/vmlinuz-2.6.31-17-generic”的内核将被载入内存,并读取“root=UUID=f1bafdd4-73c2-44b2-9a62-d50a2da4d019(sdc5)”这个分区的一些必需的文件。
第三行的意思是:用名为“/boot/initrd.img-2.6.31-17-generic”的文件先在内存中构造一个“虚拟”的根文件系统,以便于内核检测完硬件信息后载入必需的模块等等,其实这个initrd也可以认为是内核的一部分,只是为了保持vmlinuz的简洁而分离出来的,有的内核甚至根本不需要这个咚咚。
OK,grub的工作到此结束,下面将由linux内核这“半个”系统接管电脑的控制权,开始初始化阶段。
:idea: 注意,到目前为止还没有开始挂载根分区,所以你可以看到root=xxxxxxxx(sdc5)这个分区是只读(ro)挂载的。

如果你去掉了第三行里的“quiet”参数的话,就可以在屏幕上看到内核初始化中整个儿过程的输出,当然,屏幕滚动会很快,而且内容很多,主要有检测硬件环境、载入相应模块、启动服务等等……。嗯,要启动一台电脑可不是件容易的事是不?
好在目前你只需要关心一件事—— 挂载 。请注意在大约中间阶段将会出现的一行字—— MountingLocale Filesystem
如果你的linux刚装好的话,因为挂载项不多,可能一闪而过。而如果需要挂载的分区很多,特别是pass参数为1或者2的时候,你就能看见逐一列出的挂载情况了。

fstab

_________________________________________________________

:idea: YEAH!真正的分区挂载就此开始。

这个时候linux将会读取一个名为 fstab 的文件,并按照其中的指令逐行执行,直到读完所有内容,进入系统后快打开看看吧,他位于 /etc/fstab 。以下是我的(不要以为我说“指令”就怕怕,其实里面的内容很简单,地球人都能看懂)。
代码:
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally uniqueidentifier
# for a device; this may be used with UUID= as a more robust way toname
# devices that works even if disks are added and removed. Seefstab(5).
#
# <file system> <mountpoint>    <type>  <options>        <dump>  <pass>
proc    /proc    proc    defaults      0
# / was on /dev/sda5 during installation
UUID=ce8493a2-73a2-46d3-ac32-fe28ac9ec860      ext4    errors=remount-ro      0
# /home was on /dev/sda6 during installation
UUID=5ae0aea4-f7bb-4504-bf0c-f3dbffc8fa0f    /home    ext4    defaults      0
# swap was on /dev/sda7 during installation
UUID=db44da00-1b52-4d25-a870-57d36a6a2a85    none    swap    sw      0

或者也可能被写成了这样
代码:
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally uniqueidentifier
# for a device; this may be used with UUID= as a more robust way toname
# devices that works even if disks are added and removed. Seefstab(5).
#
# <file system> <mountpoint>    <type>  <options>        <dump>  <pass>
proc    /proc    proc    defaults      0
# / was on /dev/sda5 during installation
/dev/sdc6      ext4    errors=remount-ro      0
# /home was on /dev/sda6 during installation
/dev/sdc5    /home    ext4    defaults      0
# swap was on /dev/sda7 during installation
/dev/sdc4    none    swap    sw      0

1.请忽略所有以#开头的行,这是注释,给自己看的,linux不会执行它,就算是一行完整的命令也一样,它将被完全的无视。
2.请记住,每一行就是一条完整命令,不能有换行符。或者说换行符(回车)的作用相当于文章中的句号。
3.每行中的每个空格或TAB符号是参数分割符号,起作用相当于文章中的逗号。多个相连的空格或TAB将被视为一个。
4.linux挂载分区的时候将自上而下,顺序执行

第一个起作用的行(第8行)是proc,1楼已经解释过了,咱们不管它;
第二个起作用的行(第10行)是/dev/sdc6那里,这就是linux最先被挂载的根分区了;
再下来(第12行)将继续把sdc5挂载到/home,也就是说,sdc5这个本来关系平等的分区,现在感觉上成了sdc6的一个下级目录;
最后(第14行)将“挂载”swap分区,之所以打上引号,是因为这个交换分区有点特殊,因为他并没有被“附属”于/,而是独立使用的,至少你从根目录开始是找不到它的(所以挂载点并没有被写成/swap),总之,它被系统“霸占”了,你不能直接在这个分区读写任何数据。

:idea: 到此为止,一个真正“可用”的linux系统创建完毕,可以交付你使用了。

DIY

___________________________________________________________

引用:
等等,你说了半天,可我的D盘E盘F盘到底在哪里啊?
额……,那你也等等,我费劲说了这么多,又打字又贴图的,容易吗我?怎么就是拧不过来你对分区的错误称呼方式呢?回1楼再去看看帖呀,请学会用正确的方法表达你的诉求——“等等,你说了半天,我的第二分区、第三分区……到底在哪里啊?”好不好?

前面说了,如果你的电脑只有一块硬盘的话,那么所有分区都将被编号为sda,SCSI(IDE、SATA、USBdisk) DISKA的意思,有两个的话就是sdb喽,而sda上的分区将继续被从1开始按物理顺序编号,所以你那个“D盘”,一般来说就是sda2了,请自己打开/etc/fstab(用sudo),在文件的最后加入一行(看不懂这些参数的乖仔 请再次移步这里看3楼 ):
代码:
/dev/sda2    <挂载点>    <分区格式>    <挂载参数>      0

然后……,不用重启电脑!再说一遍,不要总是用windows思维来套linux!请执行
代码:
sudo mount -a      / /可以理解成mount-a把fstab文件的命令又执行了一遍

就可以在<挂载点>看到你要的东西了。
引用:
哎哎哎,再等等,我怎么知道分区编号是几啊,总不至于还要拆硬盘来看吧?

嗯,当然不至于啦,输入一个命令就好
代码:
sudo fdisk -l

根据分区特征、大小等等信息,总该知道了吧?
这样还不行?那就打开gparted程序,有示意图就肯定没问题了。

有多个硬盘的口口(此处被EE屏蔽),建议使用UUID挂载分区以免混淆,获取UUID请使用blkid命令,看我的
代码:
# blkid
/dev/sda1: UUID="4028B77B28B76F12" LABEL="WINXP" TYPE="ntfs"
/dev/sda5: LABEL="YEAR" UUID="0000-0000" TYPE="vfat"
/dev/sda6: UUID="E4F018CFF018A9B6" LABEL="ST80PE" TYPE="ntfs"
/dev/sda7: UUID="2A58D7CE58D796C3" LABEL="Program"TYPE="ntfs"
/dev/sda8: UUID="E46CE5006CE4CDFC" LABEL="Fonts" TYPE="ntfs"
/dev/sdb1: UUID="B6A4A454A4A4193F" LABEL="320A" TYPE="ntfs"
/dev/sdb3: LABEL="DEBIAN"UUID="5d1dda14-04e7-42e2-9db9-82e5a1c71d30" TYPE="ext4"
/dev/sdb5: LABEL="HOME" UUID="f63bf91f-38af-4c0f-92c2-22f57650ef85"TYPE="ext4"
/dev/sdb6: UUID="84c7f174-fd5c-4872-9be8-f6afddca2b14" TYPE="ext4"LABEL="ARCH"
/dev/sdb7: LABEL="P2P" UUID="36223d45-f7e2-4b23-a845-7e9fc4a9c5ab"TYPE="ext4"
/dev/sdb8: LABEL="MUSIC"UUID="068a59a0-d30b-4d9a-896c-233794facfb1" TYPE="ext4"
/dev/sdb9: LABEL="MOVIE"UUID="a4a14993-8675-4905-ae31-f2ca3a89e6ef" TYPE="ext4"
/dev/sdc1: UUID="4444961844960CB4" LABEL="Windows7"TYPE="ntfs"
/dev/sdc2: UUID="C634795434794907" LABEL="WD2" TYPE="ntfs"
/dev/sdc3: UUID="24288C6C288C3F34" LABEL="WD3" TYPE="ntfs"
/dev/sdc5: UUID="30BCB1D9BCB19A34" LABEL="WD5" TYPE="ntfs"
/dev/sdc6: UUID="5C1CC4F61CC4CBE8" LABEL="WD6.Lib"TYPE="ntfs"
/dev/sdc7: UUID="5E98D85F98D836ED" LABEL="WD7" TYPE="ntfs"
/dev/sdd1: UUID="1E7CCB1E7CCAEF97" LABEL="ST160SYS"TYPE="ntfs"
/dev/sdd5: UUID="C628FB7028FB5E3D" LABEL="ST160NT1"TYPE="ntfs"
/dev/sdd6: UUID="DC607A20607A0196" LABEL="ST160NT2"TYPE="ntfs"

很清楚吧?根据分区编号、卷标和分区格式,很容易就能找到你需要的UUID,用这个替代/dev/sda2即可。

:idea: 这是我的fstab最后的样子,没办法,硬盘太多。
代码:
# /etc/fstab: static file systeminformation.
#
# Use 'blkid -o value -s UUID' to print the universally uniqueidentifier
# for a device; this may be used with UUID= as a more robust way toname
# devices that works even if disks are added and removed. Seefstab(5).
#
# <file system> <mountpoint>    <type>  <options>        <dump>  <pass>
proc    /proc    proc    defaults      0
# / was on /dev/sda5 during installation
UUID=ce8493a2-73a2-46d3-ac32-fe28ac9ec860      ext4    errors=remount-ro      0
# /home was on /dev/sda6 during installation
UUID=5ae0aea4-f7bb-4504-bf0c-f3dbffc8fa0f    /home    ext4    defaults      0

#Seagat 320G
UUID=B6A4A454A4A4193F     /home/MNT/ST320G/320A    ntfs-3g    defaults,utf8,umask=000,uid=adagio,gid=users              0
UUID=36223d45-f7e2-4b23-a845-7e9fc4a9c5ab    /home/MNT/ST320G/P2P    ext4    defaults      1
UUID=068a59a0-d30b-4d9a-896c-233794facfb1    /home/MNT/ST320G/MUSIC    ext4    defaults      1
UUID=a4a14993-8675-4905-ae31-f2ca3a89e6ef    /home/MNT/ST320G/MOVIE    ext4    defaults      1

#Seagat 80G
UUID=E46CE5006CE4CDFC     /home/MNT/ST80G/FONTS    ntfs-3g    defaults,utf8,umask=000,uid=adagio,gid=users              0
LABEL=YEAR    /home/MNT/ST80G/YEAR    vfat    defaults,utf8,umask=000            0
UUID=2A58D7CE58D796C3     /home/MNT/ST80G/PROGRAM    ntfs-3g    defaults,utf8,umask=000,uid=adagio,gid=users              0

#Seagat 160G
UUID=C628FB7028FB5E3D     /home/MNT/ST160NT1    ntfs-3g    defaults,utf8,umask=000,uid=adagio,gid=users              0
UUID=DC607A20607A0196     /home/MNT/ST160NT2    ntfs-3g    defaults,utf8,umask=000,uid=adagio,gid=users              0

#WestDigital 1000G
UUID=C634795434794907     /home/MNT/WD1000/WD2    ntfs-3g    defaults,utf8,umask=000,uid=adagio,gid=users              0
UUID=24288C6C288C3F34     /home/MNT/WD1000/WD3    ntfs-3g    defaults,utf8,umask=000,uid=adagio,gid=users              0
UUID=30BCB1D9BCB19A34     /home/MNT/WD1000/WD5    ntfs-3g    defaults,utf8,umask=000,uid=adagio,gid=users              0
UUID=5C1CC4F61CC4CBE8     /home/MNT/WD1000/WD6.Lib    ntfs-3g    defaults,utf8,umask=000,uid=adagio,gid=users              0
UUID=5E98D85F98D836ED     /home/MNT/WD1000/WD7    ntfs-3g    defaults,utf8,umask=000,uid=adagio,gid=users              0

这是我画的挂载示意图(只画出单个硬盘,如果四个全画上,这图就成蜘蛛网了),请看:



OVER

_______________________________________________________________________________________

:idea:搞好了这些,你这辈子再也不用为挂载发愁了,安心用吧。

:idea:我曾经看到有人发帖说,设定好了的壁纸,一旦重启就没了,变成 光板桌面。这是怎么搞的呢?
其实问题很简单,就是——他不懂mount is what玩意!

我们的ubuntu使用的窗口管理器是gnome套件,用于管理文件的程序(相当于windows的资源管理器)是nautilus(鹦鹉螺)。
这个程序为了方便你的使用,精心打造了一种“点击挂载”方式,要说明的是,这种方式完全与fstab文件无关,它由另一个程序控制。
每次启动gnome以后,nautilus会根据内核检测到的分区信息,逐一把所有未挂载的分区罗列出来,并显示在左侧的“Places”栏里(下图鼠标处)
附件:


当你要使用这个分区的时候,只需“点击”一下,就会在右侧显示出来。
其实这时候gnome执行了几个动作:
1. 根据用户点击的分区,在/media目录创建一个子目录,并使用分区卷标(没有卷标则使用分区容量)命名;
2. mount该分区到此目录;
3. 重启后就卸载,并删除此目录;
于是点击之后你就可以读写该分区了。

这种方式……,有好有不好。
好处是不用去编辑fstab文件,敲大堆的代码,随点随用,不用了右键即可卸载;
不好的地方呢?如同上面的那个壁纸“莫名消失”的困惑一样喽。
因为这种方式需要你每次启动后都要“点击”一下,也就是说它不会“记住”你曾经挂载过的分区,或者说它不是像fstab一样是自动的,顶多算半自动吧。

搞清楚了道理,那壁纸“莫名消失”的问题,也就不“莫名”了?
因为他设置的壁纸储存在“点击挂载”的某个分区,而刚进入桌面的时候你还没有“点击”,所以这张壁纸是“不存在的”,当然就只能看见一个光板桌面了。
很正常是不?

解决这个问题的办法只有一个,就是把壁纸放在fstab挂载的管辖范围之内。


:idea:还有人经常问一个问题——我用fstab挂载的分区,为什么不出现在左侧“Places”里了?
是的,这样的确令人感觉不便。
不过解决办法也是一样的简单—— 加入“书签”
首先打开nautilus,进入你挂载好的目录(挂载点),按 “CTRL+D”(呵呵,跟大多数web浏览器一样喔),或者菜单--->书签--->加入书签,然后就可以在Places的最下面看见它了(下图鼠标处),满意了吧?

Linux是一种开源的操作系统,它的核心是由Linus Torvalds开发的。它的特点是稳定、安全、高效、灵活和可定制化。Linux的基础知识包括以下几个方面: 1. Linux的文件系统:Linux的文件系统是以树形结构组织的,根目录为“/”,其他目录都是在根目录下的子目录。Linux的文件系统中,所有的文件和目录都是以“/”开头的绝对路径。 2. Linux的命令行界面:Linux的命令行界面是通过终端窗口来实现的。在终端窗口中,用户可以通过输入命令来操作系统。Linux的命令行界面可以让用户更加高效地操作系统。 3. Linux的用户和权限管理:Linux的用户和权限管理是非常重要的。Linux系统中,每个用户都有自己的用户名和密码。用户可以通过用户名和密码登录系统,并且每个用户都有自己的权限。管理员可以通过设置权限来控制用户对系统的访问。 4. Linux的软件包管理:Linux的软件包管理是非常方便的。Linux系统中,用户可以通过软件包管理器来安装、升级和删除软件包。软件包管理器可以自动解决软件包之间的依赖关系,让用户更加方便地管理软件。 5. Linux的网络管理:Linux的网络管理是非常强大的。Linux系统中,用户可以通过网络管理工具来配置网络设置、管理网络连接和监控网络流量。Linux还支持各种网络协议和服务,包括TCP/IP、HTTP、FTP、SSH等。 总之,Linux的基础知识包括文件系统、命令行界面、用户和权限管理、软件包管理和网络管理等方面。掌握这些知识可以让用户更加高效地使用Linux系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值