linux挂载

grub_______________________________________________________________________________________
 系统启动当然是从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 --set f1bafdd4-73c2-44b2-9a62-d50a2da4d019
linux /boot/vmlinuz-2.6.31-17-generic root=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 ro splash
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内核这“半个”系统接管电脑的控制权,开始初始化阶段。
 注意,到目前为止还没有开始挂载根分区,所以你可以看到root=xxxxxxxx(sdc5)这个分区是只读(ro)挂载的。

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



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

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

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

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

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

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



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

这样才乖喔,蜀黍这就带你去找。

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

然后……,不用重启电脑!再说一遍,不要总是用windows思维来套linux!请执行
代码:
sudo mount -a

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

嗯,当然不至于啦,输入一个命令就好
代码:
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即可。

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

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

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

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

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

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




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

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

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

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

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

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

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


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




题外话_______________________________________________________________________________________
我的分区,如果在windows里就是酱紫:
本来应该是D盘的WD2,现在被他安排到了P盘,最重要的是这期间根本没有请示过我想不想这样!
当然我可以手动调整,不过我讨厌这样,我的电脑我做主,一个小小OS也敢来随意处置,它好大的胆!
附件:
7.JPG



介绍两个自动挂载分区的软件,ntfs-config和ivman,由于这不符合“我的电脑我做主”的精神,我本人从来不用,也强烈反对新手使用,所以具体情况请自己google,杀了你我也不说。 
刚入门的新手,似乎大多数都遇上过一个困扰——当初的分区不合理,怎么办?

最“傻瓜”的办法就是重装,我不罗嗦了。
不过这样的话,你就轻易放过了一个菜鸟变老鸟的大好机会,可惜。

想起飞又不怕摔得钻心疼的菜鸟请继续往下看。

其实如果你理解了linux的树形目录的话,这事干起来也没啥大不了的,借助几个工具,敲几行代码就行。

第一、准备一张liveCD,最好是desktop;
用alternat或者硬盘启动ISO文件也行,但alternat只能全终端操作,没有GUI喔;而硬盘启动必须保证ISO文件所在分区,与被影响到的分区完全无关。

第二、观察一下目前的分区状态,制定调整方案;
这里请搞清,你要调整一个分区,如果是变大,那么变大的部分只能从临近的分区“掠夺”而来,而且这个“临近的分区”必须是与被调整分区同类的,即同为主分区或同为逻辑分区,如果不是,那不幸的你只好再麻烦点,先调整为同类喽。
记住,临近同类是必须的,缺一不可。
如果是变小就简单点了,你可以把多余出来的部分合并入临近分区,或者单独建立为新分区;

步骤如下:
1. 使用gparted可动态调整分区(也可以叫“无损分区”),就是在不破坏原有分区数据的前提下,改变分区大小。这一步和windows没啥本质区别;
2. 编辑fstab文件,使系统能正常启动;
注意到fstab文件里的第一项了么?ubuntu默认使用UUID挂载,一般情况下这个UUID是不会变的,即使你把硬盘拿到其他电脑使用,也不会变。
但是,如果你“改变”了该分区现状,比如改变大小、格式化(正常的向分区写入数据不属于改变现状)等等,则将会重新生成新的UUID。
所以你必须在调整完毕后,在fstab中用新的UUID替换旧的,否则无法启动就是很自然的事了。

如果你的fstab用类似/dev/sda5这种写法的话……,也应该检查一下是否的确没问题。

引用:
合理的分区方案:

再一次不厌其烦的重申,linux是一个树状系统结构,所以根分区不用太多,在足够容纳系统及程序数据的情况下稍有富裕即可,多了就是浪费。
按照一般家庭用户的使用来说,如果主要用于上网、听歌、看电影等等,对于这种“大众化”的要求,可按照如下方案分配:
/ -------------->10G±5G(其实如果不用X的话,5G还嫌太多);
/home ------->1G~10G(足够存储配置文件和一些必要的数据即可,太大了不好);

以下为可选的(即不是必要的,没有也行)
swap -------->大于内存即可。如内存本身大于2G且不使用休眠功能的话,根本不需要这个分区;
/boot -------->如果你使用太大的硬盘(500G以上)且根分区被安排到了磁盘末尾部分,就在磁盘靠前部分分配一个/boot分区(放置内核用),100~200M足够。多一点都是浪费。如果你硬盘不大,或者根分区靠前的话,同样根本不需要这个分区;
/var ----------> 5~15G,对于网速不快且经常需要重装的新手,建议要,省去很多麻烦。

其他空间你自己看着办吧,搞好之后挂载到你喜欢的地方去就好。

如果你感觉当初的分区方案的确欠妥的话,动手!



 第一步_______________________________________________________________________________________

用liveCD启动系统(linux不是windows,你想直接在本机系统干这事也不是不可以,不过需要你具备更强的终端能力,请自己学习去吧)。
引用:
进入桌面后,首先问一个问题,如果现在需要调整fstab文件,它在哪?
——老师老师我知道,输入sudo gedit /etc/fstab,然后……
KAO,这位同学请自己出去弹老二100下,然后回2楼重读100遍再来!
——老师老师我知道,现在的根分区其实和刚才的不一样了,所以要找原来的fstab文件,必须先把原来的根分区挂载进来,成为现在系统下一个普通的挂载点,然后sudo gedit /<挂载点>/etc/fstab就OK啦!
呵呵,乖仔乖喔,过来老师亲一口。

然后呢?打开gparted调整?
等会……
这样当然是没问题的,不过你可能不了解一个情况,就是gparted干这事……,忒慢!
是的,慢到令人吐血,我曾经用它调整一个20G的分区,猜猜它干这事要多久?
10个小时。KAO!这点时间足够重装10遍的!
更要命的是,一旦开工就不能cancel了,否则你就准备找数据修复软件吧(没办法,windows下的分区工具PM、PQ这些不支持ext4,不过就算支持也难以令人放心)。

不过如果是空分区,那就好办了,20分钟足够!
so……,咱们变通一下,先把待调整的分区备份好--->然后删除,令它成为空闲分区--->再来调整好--->再重建分区--->再把备份的数据放回去
不就好了?挖哈哈哈哈~~~~
引用:
备份不能用ghost,这跟支持不支持linux没关系。ghost是以区块备份的,用这个等你调整好后再ghost恢复回去,包你到时候要傻眼。
原因么,自己搜去,总之不听我老人家劝,吃亏就在眼前。

我现在假定你需要增大鼠标指向的sda5(其实8G也够了),想把旁边sda6上的空间“挪”2G到sda5变成10G,保持sda1不变,并令其作为临时储存备份文件的地方(你得确定有足够空闲空间喔,可以用df命令查看sda5有多大,空闲空间至少要等于它)。
附件:
3-1.jpg




 第二步_______________________________________________________________________________________

请打开终端,使用强大的tar命令(类似生成windows的wim格式的ImageX,不过这玩意在tar面前简直是个小学生),跟我一起敲码:
代码:
cd                  (确保当前处于“家目录”)
mkdir  sda5                  (建立一个名为“sda5”的空目录,之所以叫这个是为了保持与分区编号一致,以免头晕)
sudo mount /dev/sda5 sda5      (挂载第二分区到sda5)
cd sda5                     (进去看看对不对)
ls                        (实在不习惯终端的话,也可以打开nautilus看)

确定没问题吗?那么继续
代码:
cd                     (回到“家目录”)
mkdir sda1                     (再创建一个空目录用于挂载sda1)
sudo mount /dev/sda1  sda1         (挂载sda1)
cd sda5                        (再次进入sda5)
sudo tar -cvpf  ~/sda1/ubuntu.tar  ./    (打包本目录下的所有文件到sda1,并命名为ubuntu.tar,注意这里没有使用压缩,只为了节约时间)

等屏幕上停止滚动,再次出现终端提示符的时候,去~/sda1看看确定一下,然后
代码:
sudo umount /dev/sda5      (卸载sda5,这是调整时必须的,可能sda1也必须卸载掉)




 第三步_______________________________________________________________________________________

OK,现在可以打开gparted胡作非为了

先删除sda5分区,然后从sda6哪里“掠夺”2G空间出来,再在10G空闲空间上创建sda5分区。这个怎么做不用我说了吧?
你可能会发现这样还是很慢,因为sda6上有数据,我说了,gparted干这事令人吐血。
所以……,如果你还有地方的话,可以像对付sda5一样对付sda6,即备份、删除、再调整、再还原,^_^

呵呵,好在调整分区这档子破事,咱也不用天天整吧?嫌慢就去找个gf聊聊哈。
等到那花儿也些了,你也就苦到头了,谁让你当时不想好了再下手呢?



 第四步_______________________________________________________________________________________

好了就再来,还是终端
代码:
cd                              (回到“家目录”)
sudo mount /dev/sda5  sda5                  (再次挂载sda5)
sudo mount /dev/sda1  sda1                  (再次挂载sda1)
sudo tar -xvpf  ~/sda1/ubuntu.tar  -C ~/sda5   (释放刚才打包的文件到sda5目录)
cd sda5                                 (再次进入sda5看看有问题没?)

我觉得应该可以了的说。  



 第五步_______________________________________________________________________________________

也是最后一步——调整fstab文件
代码:
blkid
sudo gedit ~/sda5/etc/fstab

把现在的新sda5的UUID贴上去吧,如果fstab里也挂载了sda6的话,一样,改!

再来,把grub菜单中所有引用到的UUID全改掉,否则等会你又要见到经典的ERRO 15了。
代码:
sudo gedit ~/sda5/boot/grub/grub.cfg

请注意,如果/boot单独分区了的话,该挂载哪个分区、编辑那个文件就要自己琢磨琢磨了。

一切OK后,删除~/sda1/ubuntu.tar(当然你硬盘空间富裕的话,留着做个备份也不错,去学一学怎么用tar把它再压缩一下,呵呵)。



 如果你认为还应该有一步的话_______________________________________________________________________________________

就是重启,over 
每个人都会有一点点隐私,那心灵最深处的脆弱啊,被人触动了真的好痛好痛喔……
引用:
冠希老师:我、我、我……,就是啊~~哎哟好痛~~~


痛定思痛,早作打算,咱们不能让杯具重演,现在就来想想怎么把这些好痛痛的东西藏起来!  


首先请搞清楚一下几点:
第一、这里讨论的是隐藏,而不是加密;
第二、这里只讨论“一般情况”,之所谓“一般”,是以如下条件为前提下讨论的:
1. 你没有被人“惦记”着,或者至少只是被某个“新手”惦记着(因为如果某人执意挖空心思想偷窥你的话,天晓得他会怎么做);
2. 这些被隐藏的文件,你不需要经常使用,只作为备忘、备份的资料(想拿出来用比较麻烦);



不忙哈,咱们先聊聊其他几种方法

 最基本的一种,对付windows足够——放在linux分区里。
由于自大的M$的全面配合,任何windows系列OS都原生无法读写linux分区(准确点说是所有非MS分区),所以如果你装了双系统,而和你共用电脑的人只会在windows里闹腾的话,放心吧,你有充分的理由藐视他。
当然,这不是无懈可击的,因为有很多win版的软件可以读写linux分区。不过这又违反了刚才的假设,因为如果他能折腾这玩意,那就可以猜测他基本会使用linux,至少知道怎么进入双系统中的另一个,是不?

 最简单的一种,地球人都知道——就是加点喽。
利用linux的命名规则,所有文件和目录如果第一个字母是小数点“.”,那么将被看作隐藏文件而不予显示,nautilus等几乎所有文件管理器都会遵从这个规则,ls命令也一样,所以这不失为一种最简单可行的办法;
当然,要“破解”也超级简单,大多数文件管理器里按“CTRL+h”或强制显示隐藏文件即可,或者用ls -a命令也一样;
对于稍有linux使用经验的人来说——大哥你也太看不起人了吧?
不过话又说回来,对付我老婆还是足够了。

 最朴实的一种,地球上的所有高于单细胞等级的生物都知道——深挖洞、多盖土。
要点如下:
1. 建立一个拥有100多层子目录的目录,而且各层目录间都有100多个平行的子目录;
2. 目录名要没劲——比如“党的先进性教育”等等;
3. 文件名更要没劲——比如d54eaohye58ef10sdf.tmp等等;
4. 混杂在100多个大小相等、真正没劲的文件里;
缺点:
1. 此地无银三百两;
2. 你自己记性要好;

 最NB的一种,地球人没几个知道——改内核代码(由244楼友情赞助)。
tusooa 写道:
已经有了。
http://www.gobolinux.org/?page=doc/articles/gobohide
英文的。自己看。
列出优点:
  1. shell,file-manager什么的,都看不到
  2. 隐藏小目录还是很好的
缺点:
  1. 虽然ls dir看不到,但是还是可以直接敲文件名。(而且,gobohide -l 可以看到)
  2. 要给内核打补丁(更新内核之后就没了)
  3. 估计一般人不会搞。


 较聪明的一种,用linux的人都知道——利用权限。
我们知道linux下所有文件和目录都有一个x属性,对于文件来说,这标志着文件是否可以被执行。
而对于目录意味着什么呢?访问。
也就是说这个目录是否允许“进入”,注意是打了引号喔,原因等会便知。

你可以试试,新建一个目录,比如“123”,然后随便在里面放几个文件,然后执行
代码:
chmod -x 123

这个命令的后果就是——拿掉所有用户对这个目录的x权限,也就是禁止所有用户进入这个目录。
好了,既然进不去,你的目的也达到了。

想进去的时候,只要再执行下面命令就行。
代码:
chmod +x 123

当然,这方法对付终端有点问题,因为虽然不能cd进去,但是可以用ls 123这个命令看到里面的内容。
另外,如果人家是root账号,或者拥有sudo权限的话,你就白忙活了(这就是刚才加引号的原因)。
最后,这个搞法会使人感觉这个目录“怪怪”的,依然有点“此地无银三百两”的感觉。


好了,进入正题

 最聪明的一种,只有我知道——利用挂载。嘿嘿……

你能看完这么长帖子,不服不行!今天就便宜你了。

我们都知道,挂载其实就是把某个分区(目录)“嫁接”到另一个分区(目录)的某个目录下,形成一颗树。而当读写该目录的时候,实际是在读写挂载于该目录的另一个分区(目录)。


几乎所有的教程都会告诫你——不要在这个用于挂载的目录里放任何文件!

呵呵,请看清楚,并没有说“不能”喔!

其实,这个目录有没有“装”文件、“装”了多少文件,对挂载本身没有任何影响;
受影响的是本身“装在”该目录里的文件,因为一旦挂载成功,这里面的文件就“消失”了。注意,不是没了,也不是删除了,而仅仅是暂时“看不到”。
现在这个目录里的内容,被挂载到这里的分区取代了。
引用:
打个比方吧,你去租房住,进去后可能会对前主人在墙上留下的“到此打炮”什么什么的很讨厌,怎么办呢?拿张报纸糊上不就行了?

嗯,如果现在有人拜访你,还会看见那几个字么?
——废话,你以为我用的透明纸啊?

好的,再问一个问题,那几个字还在不在?
——越发废话了不是?当然在啊,只是现在看不见了而已,过几天我搬走,人家房东进来把报纸撕了不还在那么?

YEAH!这回明白了。
比如刚才的123目录吧,假如里面有个abc.txt文件。当挂载一个分区(目录)到这里的时候,再看123目录的内容,abc.txt文件不见了,取而代之的是另一个分区(目录)的什么什么文件了;而只要卸载掉这个分区(目录),abc.txt又神奇的出现了,娃哈哈哈哈~~~~~

啥,你还是没听懂?唉,真是朽木不可雕也……

现在假定你有一个很要命的银行密码,记在脑子里吧,怕忘了;写在纸上吧,怕让人看见,咋整呢?

这样,把它存为一个文件,然后放在/home目录里(PS:看清楚,不是home分区!),然后编辑fstab,把真正的home分区挂载到/home目录,就行了。

放心吧,谁会吃饱了撑的想起卸载home分区看看?
古人云:大隐隐于市;民间也有说:灯下黑,基本都是这个意思了。藏东西,咱就要藏在最出乎意料的地方。娃哈哈哈~~~~~


优点:
1. 隐蔽。我刚才说了,谁也不会没事突然想起卸载home分区玩吧?
2. 自动化。fstab是每次开机必然要生效的,所以根分区上的那个/home/xxx文件永远都看不到,root也不例外!任何人都只能看到被挂载到这里的、另一个home分区的内容。
3. 普通账号想卸载home分区很难,至少我不会搞。

缺点:
1. 不能存储太大的文件,太大必然占用太多的空间,任何人随便敲的df命令就会对根分区的空间莫名消失的奇怪现象发生兴趣。
2. 如果人家拥有root账号,这方法就不一定保险了;二如果人家用了liveCD,或者启动了另一个linux的话,这个“障眼法”将自然失效。
3. 如果有谁想重装系统,所以格式化了根分区的话……,偶卖糕的,这么重要的东西,但愿你还没忘了。


以下由41楼xiooli补充,特此感谢!(我就说了,教人的同时也是自己学习的过程是不?)  
引用:
藏东西那个也可以用mount bind, 不必要非得挂个分区在藏东西的目录上去,也可以挂另外一个存在的目录上去,来个例子:
代码:
xiooli@XIOOLI> ls tst0 tst1
tst0:                                                                                           
no_big_deal                                                                                     

tst1:
top_secret


fstab上这么写:
代码:
/home/xiooli/tst0 /home/xiooli/tst1 none defaults,bind 0 0


代码:
xiooli@XIOOLI> sudo mount -a  
密码:
xiooli@XIOOLI> ls tst0 tst1 
no_big_deal

tst1:
no_big_deal

看不懂的我来解释一下:

假设你有两个目录,分别是tst0tst1,tst0下有一个文件no_big_deal,而tst1下有另一个文件top_secret
如果利用mount 的bind参数,把tst0“挂载到”tst1的话,则tst1下的top_secret文件将同样被“隐藏”,而打开tst1后将只能看到tst0目录下的no_big_deal文件。

当然这样的方式,人家要卸载比较简单,前提是他必须先“察觉”到tst1目录的“异样”,并且拥有root权限。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值