proc /proc proc nodev,noexec,nosuid 0 0
于是乎试着使用自己的方式来改写。sudo fdisk -l查看硬盘信息.
Device Boot Start End Blocks Id System
/dev/sda1 * 1 7572 60820168+ 7 HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2 7572 11494 31498240 7 HPFS/NTFS
Partition 2 does not end on cylinder boundary.
/dev/sda3 11494 26506 120588288+ 5 Extended
Partition 3 does not end on cylinder boundary.
/dev/sda4 26507 30401 31283280 7 HPFS/NTFS
Partition 4 does not end on cylinder boundary.
/dev/sda5 11494 16715 41943040 7 HPFS/NTFS
/dev/sda6 16716 21937 41943040 7 HPFS/NTFS
/dev/sda7 21937 26506 36700160 7 HPFS/NTFS
然后在逐个挂载分区,看看哪个是对应的learn盘,fun盘,首先在/media下面新建一个文件,比如test,然后执行命令:
sudo mount /dev/sda1 /media/test
通过对挂载之后内容的判断,知道上面的分区分别是哪些盘,然后就好说了。
编辑/etc/fstab文件,在最后面加入我要开机自动挂载的盘的配置信息,如下:
/dev/sda4 /media/Code ntfs nodev,noexec,nosuid 0 0
/dev/sda5 /media/Learn ntfs nodev,noexec,nosuid 0 0
/dev/sda6 /media/Fun ntfs nodev,noexec,nosuid 0 0
唯一一点需要注意的就是文件类型,这里我的盘都是ntfs类型的,所以通过查看文档知道有该类型(不知道为何开始使用hpfs也是OK的,后面就不行了),在经过几次测试之后,发现出现了类型错误。
信息错误可以有dmesg | tail来查看。
在找到类型错误后,修改位ntfs,即可正确的挂载。
然后挂载的话就直接使用sudo mount /media/Fun ......即可。
当前,注意由于配置文件中有/media/Code......文件夹,所以需要在/media文件夹下面新建相应的文件夹,否则会失败,注意还要是管理员权限。
最后,注销后再次进入,就能够看到自动挂载的盘符了,而且,此时还不能umount掉哦,提示不是root用户。至此,达到了第一个目的了,能够开机自动挂载。
如果想要使用更加个性化的选项和操作,可以查看参考资料,另外,Man文档中有很多有用的信息,看文档是最快,最直接的方式。
如果想要取消挂载的话,直接使用umount命令即可。比如取下挂载fun,则使用命令:sudo umount /media/fun即可。
P.S: 如何挂载ISO文档呢?之前下载了无损音乐,格式是ISO镜像,不想解压,那么如何mount上去呢?
Key:
sudo mount *.iso /mnt -o loop(将*.iso换成你的那个iso所在的路径即可,另外,也不一定要挂载在mnt目录下面,可以另外新建一个文件夹,类似于前面在media下面新建Fun,Learn等文件夹一样。)
P.S.S: 在终端输入命令之后,如果想在前面加入sudo怎么办?还要移动方向键来选择插入点,多麻烦啊?
Key:
使用Ctrl+A(不管大小写)键即可跳转到第一个字符,从而输入sudo后回车即可。
修改:上面的描述在实际运行的时候,能够开机的时候mount,但是今天发现,直接用Banshee来打开音乐的话,还是会出现问题,就像没有mount一样,不能打开文件,所以怀疑是权限问题。再次阅读了man mount和man fstab的资料(主要资料在man mount中),修改了相应的权限。能够实现mount的时候打开文件了,而且是开机自动mount。
修改文件如下:
proc /proc proc nodev,noexec,nosuid 0 0
/host/ubuntu/disks/root.disk / ext4 loop,errors=remount-ro 0 1
/host/ubuntu/disks/swap.disk none swap loop,sw 0 0
/dev/sda4 /media/Code ntfs users,auto,rw,dev,exec,umask=002 0 0
/dev/sda5 /media/Learn ntfs users,auto,rw,dev,exec,umask=002 0 0
/dev/sda6 /media/Fun ntfs users,auto,rw,dev,exec,umask=002 0 0
修改后的option字段增加了很多设置,具体来说就是:
users:表示任何用户都能够umount,之前的设置不能umount,只能在命令行下面使用sudo权限才能使用。
rw:表示拥有读写权限。
auto:Can be mounted with the -a option.(使用mount -a的时候能够吧fstab中的所有自动mount上去)
dev: Interpret character or block special devices on the filesystem.
exec:可执行权限
umask以及fmask:对于文件和文件目录的权限设置。
下面是一个资料中关于fstab的详细解释,在其中有更详细的解释和说明(How to fstab)( http://ubuntuforums.org/showthread.php?t=283131)
摘录部分资料:
defaults = rw, suid, dev, exec, auto, nouser, and async.
Options for a separate /home : nodev,nosuid,relatime
My recommended options for removable (USB) drives are in green.
auto= mounted at boot
noauto= not mounted at boot
user= when mounted the mount point is owned by the user who mounted the partition
users= when mounted the mount point is owned by the user who mounted the partition and the group users
ro= read only
rw= read/write
说明:option字段中,即上面的 users,auto,rw,dev,exec,umask=002部分,是使用逗号间隔的一个设置,其中auto是在启动的时候自动mount,而noauto则是在启动的时候不mount(可见之前noauto实际上还是没有mount上去吧,这也解释了为何不能打开,虽然可以看见盘符,能够进去,但是以前保存的列表还是不能打开文件,不过进入盘符倒是可以的。)
users能够umount,只要是使用者即可,不一定要是root。
挂载点的问题:
挂载在/mnt下面的话,不会出现在Places和Desktop中,而挂载在/media则会出现在桌面和位置上面。(默认的是在media下面,这也是为何在菜单中点击某个盘的时候实现挂载,然后在/media下面会出现相应的盘符,而不是在/mnt下面,其实,可以把ISO文件挂载在/mnt下面,硬盘分区挂载在/media下面)
- /mnt Typically used for fixed hard drives HD/SCSI. If you mount your hard drive in /mnt it will NOT show in "Places" and your Desktop.
- /media Typically used for removable media (CD/DVD/USB/Zip). If you mount your hard drive in /media it WILL show in "Places" and your Desktop.
修改2:
今天在VBox中下载的视频无法拷贝到挂载的盘,后来发现,是因为上次修改了fstab的原因,经过多次测试,终于知道问题处在umask上面,再次修改,将umask修改位0000即可。注意:umask会夺去默认的权限,比如UNIX上面创建一个文件默认的是644,这个字段的作用就是:
设定这个盘符(或者文件)的存取权限。之前的umask位004的情况,只能够读取,而不能够写入。原因就在这里!
最后,附上man文档中关于这些option的一些设置:
The following options apply to any filesystem that is
being mounted
(but not every filesystem actually honors them - e.g., the sync option
today has effect only for ext2, ext3, fat, vfat and ufs):
async All I/O to the filesystem should be done asynchronously. (See
also the sync option.)
atime Update inode access time for each access. See also the stricta‐
time mount option.
noatime
Do not update inode access times on this
filesystem (e.g, for
faster access on the news spool to speed up news servers).
auto Can be mounted with the -a option.(开机自动mount)
noauto Can only be mounted explicitly (i.e., the -a option will not
cause the filesystem to be mounted).
context=context, fscontext=context, defcontext=context and rootcon‐
text=context
The context= option is useful when mounting filesystems that do
not support extended attributes, such as a floppy or hard disk
formatted with VFAT, or systems that are not normally running
under SELinux, such as an ext3 formatted disk from a non-SELinux
workstation. You can also use context= on filesystems you do not
trust, such as a floppy. It also
helps in compatibility with
xattr-supporting filesystems on earlier 2.4.<x> kernel versions.
Even where xattrs are supported, you can save time not having to
label every file by assigning the entire disk one security con‐
text.
A commonly used option for removable media is context=sys‐
tem_u:object_r:removable_t.
Two other options are fscontext= and defcontext=, both of which
are mutually exclusive of the context option. This means you can
use fscontext and defcontext with each other, but neither can be
used with context.
The fscontext= option works for all filesystems,
regardless of
their xattr support. The fscontext option sets the overarching
filesystem label to a specific security context. This filesystem
label is separate from the individual labels on the files. It
represents the entire filesystem for certain kinds of permission
checks, such as during mount or file creation. Individual file
labels are still obtained from the xattrs on the files them‐
selves. The context option actually sets the aggregate context
that fscontext provides, in addition to supplying the same label
for individual files.
You can
set the default security context for unlabeled files
using defcontext= option. This overrides the value set for unla‐
beled files in
the policy and requires a filesystem that sup‐
ports xattr labeling.
The rootcontext= option allows you to explicitly label the root
inode of a FS being mounted before that FS or inode because vis‐
able to userspace. This was found to be useful for things like
stateless linux.
For more details, see selinux(8)
defaults
Use default options: rw, suid, dev, exec, auto, nouser, and
async.
dev Interpret character or block special devices on the filesystem.
nodev Do not interpret character or block special devices on the file
system.
diratime
Update directory inode access times on this filesystem. This is
the default.
nodiratime
Do not update directory inode access times on this filesystem.
dirsync
All directory updates within the filesystem should be done syn‐
chronously. This affects the
following system calls: creat,
link, unlink, symlink, mkdir, rmdir, mknod and rename.
exec Permit execution of binaries.
noexec Do not allow direct execution of any binaries on the mounted
filesystem. (Until recently it was possible to run binaries
anyway using a command like /lib/ld*.so /mnt/binary. This trick
fails since Linux 2.4.25 / 2.6.0.)
group Allow an ordinary (i.e., non-root) user to mount the filesystem
if one of his groups matches the
group of the
device. This
option implies the options nosuid and nodev (unless overridden
by subsequent options, as in the option line group,dev,suid).
encryption
Specifies an encryption algorithm to use. Used in conjunction
with the loop option.
keybits
Specifies the key size to use for an encryption algorithm. Used
in conjunction with the loop and encryption options. nofail Do
not report errors for this device if it does not exist. iver‐
sion Every time the inode is modified, the i_version field will
be incremented.
noiversion
Do not increment the i_version inode field.
mand Allow mandatory locks on this filesystem. See fcntl(2).
nomand Do not allow mandatory locks on this filesystem.
_netdev
The filesystem resides on a device that requires network access
(used to prevent the system from attempting to mount these
filesystems until the network has been enabled on the system).
nofail Do not report errors for this device if it does not exist.
relatime
Update inode access times relative to modify or change time.
Access time is only updated if the previous access time was ear‐
lier than the current modify or change time. (Similar to noat‐
ime, but doesn't break mutt or other applications that need to
know if
a file has been read since the last time it was modi‐
fied.)
norelatime
Do not use relatime feature. See also the strictatime mount
option.
strictatime
Allows to explicitly requesting full atime updates. This makes
it possible for kernel to defaults to relatime or noatime but
still allow userspace to override it. For more details about the
default system mount options see /proc/mounts.
nostrictatime
Use the
kernel's default behaviour for inode access time
updates.
suid Allow set-user-identifier or set-group-identifier bits to take
effect.
nosuid Do not allow set-user-identifier or set-group-identifier bits to
take effect. (This seems safe, but is in fact rather unsafe if
you have suidperl(1) installed.)
owner Allow an ordinary (i.e., non-root) user to mount the filesystem
if he is the owner of the device. This option implies the
options nosuid and nodev (unless overridden
by subsequent
options, as in the option line owner,dev,suid).
remount
Attempt to remount an already-mounted filesystem. This is com‐
monly used to change the mount flags for a filesystem, espe‐
cially to make
a readonly filesystem writeable. It does not
change device or mount point.
The remount functionality follows the standard way how the mount
command works with options from fstab. It means the mount com‐
mand doesn't read fstab (or mtab) only when a device and dir are
fully specified.
mount -o remount,rw /dev/foo /dir
After this call all old mount options are replaced and arbitrary
stuff from fstab is ignored, except the loop= option which is
internally generated and maintained by the mount command.
mount -o remount,rw /dir
After this call mount
reads fstab (or mtab) and merges these
options with options from command line ( -o ).
ro Mount the filesystem read-only.
rw
Mount the filesystem read-write.
sync All I/O to the filesystem should be done synchronously. In case
of media with limited number of write cycles (e.g. some flash
drives) "sync" may cause life-cycle shortening.
user Allow an ordinary user to mount the filesystem. The name of the
mounting
user is written to mtab so that he can unmount the
filesystem again. This
option
implies the options noexec,
nosuid, and nodev (unless overridden by subsequent options, as
in the option line user,exec,dev,suid).
nouser Forbid an ordinary (i.e., non-root) user to mount the filesys‐
tem. This is the default.
users
Allow every user to mount and unmount the filesystem. This
option implies the options noexec, nosuid, and
nodev (unless
overridden by subsequent options, as in the option line
users,exec,dev,suid).
附参考资料:
我们在linux中常常用mount命令把硬盘分区或者光盘挂载到文件系统中。/etc/fstab就是在开机引导的时候自动挂载到linux的文件系统。
在linux中/etc/fstab的数据项如下所示:
/dev/device mountpoint type rules dump order
设备名称 挂载点 分区类型 挂载选项 dump选项 fsck选项
例如这是一个普通的/etc/fstab:
/dev/hda2 / ext3 defaults 0 1
/dev/hda3 swap swap defaults 0 0
/dev/hda5 /usr ext3 defaults 0 0
/dev/fdo /mnt/flopy ext3 noauto 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0
(1)设备名称
/dev/device就是需要挂载的设备,/hda2就是第一个IDE插槽上的主硬盘的第二个分区。如果是第二个IDE插槽主硬盘的第三个分区,那就是/dev/hdc3,具体可以在linux下使用fdisk -l 查看。
(2)挂载点
mountpoint 就是挂载点。/、 /usr、 swap 都是系统安装时分区的默认挂载点。
如果你要挂载一个新设备,你就要好好想想了,因为这个新设备将作为文件系统永久的一部分,需要根据FSSTND(文件系统标准),以及它的作用,用户需求来决定。比如你想把它做为一个共享资源,放在/home下面就是一个不错选择。
(3)分区类型
type 是指文件系统类型,下面列举几个常用的:
Linux file systems: ext2, ext3, jfs, reiserfs, reiser4, xfs, swap.
Windows:
vfat = FAT 32, FAT 16
ntfs= NTFS
Note: For NTFS rw ntfs-3g
CD/DVD/iso: iso9660
Network file systems:
nfs: server:/shared_directory /mnt/nfs nfs <options> 0 0
smb: //win_box/shared_folder /mnt/samba smbfs rw,credentials=/home/user_name/winbox-credentials.txt 0 0
auto: The file system type (ext3, iso9660, etc) it detected automatically. Usually works. Used for removable devices (CD/DVD, Floppy drives, or USB/Flash drives) as the file system may vary on thesedevices.
(4)挂载选项
rules 是指挂载时的规则。下面列举几个常用的:
auto 开机自动挂载
default 按照大多数永久文件系统的缺省值设置挂载定义
noauto 开机不自动挂载
nouser 只有超级用户可以挂载
ro 按只读权限挂载
rw 按可读可写权限挂载
user 任何用户都可以挂载
请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto
(5)dump选项
这一项为0,就表示从不备份。如果上次用dump备份,将显示备份至今的天数。
(6)fsck选项
order 指fsck(启动时fsck检查的顺序)。为0就表示不检查,(/)分区永远都是1,其它的分区只能从2开始,当数字相同就同时检查(但不能有两1)。
如果我要把第二个IDE插槽主硬盘上的windows C 区挂到文件系统中,那么数据项是:
/dev/hdc1 /c vfat defaults 0 0
(/c 是事先建立的文件夹,作为c盘的挂载点。)
当你修改了/etc/fstab后,一定要重新引导系统才会有效。
fstab中存放了与分区有关的重要信息,其中每一行为一个分区记录,每一行又可分为六个部份,下面以/dev/hda7 / ext2 defaults 1 1为例逐个说明:
1. 第一项是您想要mount的储存装置的实体位置,如hdb或如上例的/dev/hda7。
2. 第二项就是您想要将其加入至哪个目录位置,如/home或如上例的/,这其实就是在安装时提示的挂入点。
3. 第三项就是所谓的local filesystem,其包含了以下格式:如ext、ext2、msdos、iso9660、nfs、swap等,或如上例的ext2,可以参见/prco/filesystems说明。
4. 第四项就是您mount时,所要设定的状态,如ro(只读)或如上例的defaults(包括了其它参数如rw、suid、exec、auto、nouser、async),可以参见「mount nfs」。
5. 第五项是提供DUMP功能,在系统DUMP时是否需要BACKUP的标志位,其内定值是0。
6. 第六项是设定此filesystem是否要在开机时做check的动作,除了root的filesystem其必要的check为1之外,其它皆可视需要设定,内定值是0。
参考链接:
http://diamonder.blog.51cto.com/159220/282542
http://blogold.chinaunix.net/u1/55527/showart_449692.html
(设置fstab需要参考的资料)
http://ubuntuforums.org/showthread.php?t=283131
http://www.tuxfiles.org/linuxhelp/fstab.html
注意主要的问题就在于第四列中的option设置,这里引用上面一文中的设置内容:
< 4th column: Mount options >
The fourth column in fstab
lists all the mount options for the device or partition. This is also the most confusing column in the fstab
file, but knowing what some of the most common options mean, saves you from a big headache. Yes, there are many options available, but I'll take a look at the most widely used ones only. For more information, check out the man page of mount
.
auto and noauto With the auto
option, the device will be mounted automatically (at bootup, just like I told you a bit earlier, or when you issue the mount -a
command).auto
is the default option. If you don't want the device to be mounted automatically, use the noauto
option in /etc/fstab
. With noauto
, the device can be mounted only explicitly.
user and nouser These are very useful options. The user
option allows normal users to mount the device, whereas nouser
lets only the root to mount the device. nouser
is the default, which is a major cause of headache for new Linux users. If you're not able to mount your cdrom, floppy, Windows partition, or something else as a normal user, add the user
option into /etc/fstab
.
exec and noexec exec
lets you execute binaries that are on that partition, whereas noexec
doesn't let you do that. noexec
might be useful for a partition that contains binaries you don't want to execute on your system, or that can't even be executed on your system. This might be the case of a Windows partition.
exec
is the default option, which is a good thing. Imagine what would happen if you accidentally used the noexec
option with your Linux root partition...
ro Mount the filesystem read-only.
rw Mount the filesystem read-write. Again, using this option might cure the headache of many new Linux users who are tearing their hair off because they can't write to their floppies, Windows partitions, or something else.
sync and async How the input and output to the filesystem should be done. sync
means it's done synchronously. If you look at the example fstab
, you'll notice that this is the option used with the floppy. In plain English, this means that when you, for example, copy a file to the floppy, the changes are physically written to the floppy at the same time you issue the copy command.
However, if you have the async
option in /etc/fstab
, input and output is done asynchronously. Now when you copy a file to the floppy, the changes may be physically written to it long time after issuing the command. This isn't bad, and may sometimes be favorable, but can cause some nasty accidents: if you just remove the floppy without unmounting it first, the copied file may not physically exist on the floppy yet!
async
is the default. However, it may be wise to use sync
with the floppy, especially if you're used to the way it's done in Windows and have a tendency to remove floppies before unmounting them first.
defaults Uses the default options that are rw, suid, dev, exec, auto, nouser, and async.
另外,附上一点小技巧,如何保存man文档?
man command | col -b > output.txt
如,要把ls命令的man页输出到ls.txt文件,只需要: