查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

大灰狼与灰太郎

知识啊,越学越发现会的太少

 
 
 
 

日历

 
 
模块内容加载中...
 
 
 
 
 
 
 
博友列表加载中...
 
 
 
 
 
 
 
 
留言列表加载中...
 
 
 
 
 

天气

 
 
模块内容加载中...
 
 
 
 
 
 
 
列表加载中...
 
 
 
 
 
 
 
 

[置顶] 博客说明

2010-12-19 15:31:22 阅读347 评论0 192010/12 Dec19

博客说明 - 流云寒星 - 大灰狼与灰太郎本博客目前主要用于web开发相关知识记录,交流学习,欢迎高手留言指点。

本博客实时有人照看,如果有任何意见、建议、问题、指导,欢迎随时留言,我将在第一时间回应您。博客说明 - 流云寒星 - 大灰狼与灰太郎

作者  | 2010-12-19 15:31:22 | 阅读(347) |评论(0) | 阅读全文>>

CLFS官方说明中文翻译

2012-3-3 12:18:50 阅读1288 评论0 32012/03 Mar3

 

 版权声明

本文作者是一位自由软件和Linux系统爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。

原链接http://weiweiabc109.blog.163.com/blog/static/28357220122301850484/

博客链接http://weiweiabc109.blog.163.com



What is Cross Linux From Scratch?
什么是交叉编译的LFS?

Cross Linux From Scratch (CLFS) is a project that provides you with step-
by-step instructions for building your own customized Linux system 
entirely from source.
交叉编译的LFS是一个项目,它提供给你从源码中构建一个完全定制的Linux系统的一
步一步的说明。

Why would I want a CLFS system?
为什么我想要一个CLFS系统?

Many wonder why they should go through the hassle of building a Linux 
system from scratch when they could just download an existing Linux 
distribution. However, there are several benefits of building CLFS. 
Consider the following:
很多人对为什么要自寻麻烦地去从零构建一个Linux系统而感到困惑,他们只要下载
一个现成的Linux发行版就可以。然而,仔细考虑到以下的因素,你会发现构建一个

CLFS有很多好处:
CLFS teaches people how to build a cross compiler
CLFS教会人们怎样去建立一个交叉编译器

Building CLFS teaches you how to make a cross-compiler and the necessary 
tools, to build a basic system on a different architecture. For example 
you would be able to build a Sparc toolchain on an x86 machine, and 
utilize that toolchain to build a Linux system from source code.
构建CLFS可以让你明白怎么构建一个交叉编译器和必须的工具,以及在不同的架构上
构建一个基础系统。例如,你可以建立一个Sparc(SUN公司的工作站系统
)的工具链在x86的机器上,然后利用这个工具链从源码中构建出一个Linux系统。

CLFS teaches people how to utilize a multilib system
CLFS告诉人们怎么去利用一个multilib(一个先进的典型库)系统

CLFS takes advantage of the target system's capability, by utilizing a 

multilib capable build system.
CLFS利用目标系统的能力,通过multilib构建系统

CLFS teaches people how a Linux system works internally
CLFS告诉人们一个Linux系统内部的工作原理。

Building CLFS teaches you about all that makes Linux tick, how things work 
together and depend on each other. And most importantly, how to customize 
it to your own tastes and needs.
构建CLFS可以教会你关于所有编译Linux的点滴,每个部分怎么互相配合、依赖正常
运转的。更重要的,教会你怎么样通过自己的口味和需求来定制他。

Building CLFS produces a very compact Linux system
构建CLFS可以制造出一个非常简洁的Linux系统

When you install a regular distribution, you often end up installing a lot 
of programs that you would probably never use. They're just sitting there 
taking up (precious) disk space.
当你安装一个正规的发行版,你往往安装了很多你可能从来不会用到程序。他们只是
占据你宝贵的磁盘空间。

CLFS can be built from most Unix Style Operating Systems
CLFS可以从大多数Unix型的操作系统被构建。

You can build CLFS even if you don't have Linux running. Our build 
instructions have been tested to build from Solaris and the BSDs.
你甚至可以构建CLFS不需要一个正在运行的Linux。我们的系统构建指令都是在
Solaris(Sun Microsystems研制的类Unix操作系统)和BSD等系统上测试过的。

CLFS is extremely flexible
CLFS是极其灵活的

Building CLFS could be compared to a finished house. CLFS will give you 
the skeleton of a house, but it's up to you to install plumbing, 
electrical outlets, kitchen, bath, wallpaper, etc. You have the ability to 
turn it into whatever type of system you need it to be, customized 
completely for you.
构建CLFS可以比作一个完工的房子。CLFS会给你一个房子的骨架,但是它可以让你自
行安装管道、电路、厨房、浴室、壁纸等等。你有能力将它变成任何你想要的类型的
系统,完全的为你定制。

CLFS offers you added security
CLFS为你增加安全性

You will compile the entire system from source, thus allowing you to audit 
everything, if you wish to do so, and apply all the security patches you 
want or need to apply. You don't have to wait for someone else to provide 
a new binary package that (hopefully) fixes a security hole. Often, you 
never truly know whether a security hole is fixed or not unless you do it 
yourself.
你会从源码中编译全部的系统,因此,你要审核系统的所有部分,只要你想,你就可
以安装所有的安全补丁。你也不需要等待别人提供给你修补安全性漏洞的二进制包。
往往,你并不真正了解是否这个安全漏洞有没有被修补,除非你自己来修补它。

What can I do with my CLFS system?
我可以用我的CLFS系统做什么?

A by-the-book CLFS system is fairly minimal, but is designed to provide a 
strong base on which you can add any packages you want. See the CBLFS and 
BLFS projects for a selection of commonly used packages.
通过说明书制作的CLFS系统是相当简洁的,但是它被设计成提供了强大的基础,可以
在其上安装任意你想要的软件包。可以看一下CBLFS和BLFS项目一般性选择的使用的
软件包。

作者  | 2012-3-3 12:18:50 | 阅读(1288) |评论(0) | 阅读全文>>

date命令详解

2011-12-15 11:12:28 阅读262 评论0 152011/12 Dec15

Linux下date命令用法

  • date [OPTION]… [+FORMAT]
  • date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

date命令参数

  • -d, –date=STRING  显示STRING指定的时间
  • -f, –file=DATEFILE  类似–date参数显示DATEFILE文件中的每行时间
  • -ITIMESPEC, –iso-8601[=TIMESPEC]  以ISO  8601 格式显示日期/时间。TIMESPEC为”date”(只显示日期)、”hours”、”minutes”、”senconds”(显示时间精度)之一,默认为”date”。
  • -r, –reference=FILE  显示文件的最后修改时间
  • -R, –rfc-2822  以RFC-2822兼容日期格式显示时间
  • -s, –set=STRING  设置时间为STRING
  • -u, –utc, –universal  显示或设定为Coordinated Universal Time时间格式

date命令输出显示格式

  • %%    字符%
  • %a     星期的缩写(Sun..Sat)
  • %A    星期的完整名称 (Sunday..Saturday)
  • %b     月份的缩写(Jan..Dec)
  • %B     月份的完整名称(January..December)
  • %c     日期时间(Sat Nov 04 12:02:33 EST 1989)
  • %C     世纪(年份除100后去整) [00-99]
  • %d     一个月的第几天(01..31)
  • %D     日期(mm/dd/yy)
  • %e     一个月的第几天 ( 1..31)
  • %F    日期,同%Y-%m-%d
  • %g     年份(yy)
  • %G     年份(yyyy)
  • %h     同%b
  • %H    小时(00..23)
  • %I     小时(01..12)
  • %j     一年的第几天(001..366)
  • %k     小时( 0..23)
  • %l      小时( 1..12)
  • %m    月份(01..12)
  • %M    分钟(00..59)
  • %n     换行
  • %N     纳秒(000000000..999999999)
  • %p     AM or PM
  • %P     am or pm
  • %r     12小时制时间(hh:mm:ss [AP]M)
  • %R    24小时制时间(hh:mm)
  • %s     从00:00:00 1970-01-01 UTC开始的秒数
  • %S     秒(00..60)
  • %t     制表符
  • %T    24小时制时间(hh:mm:ss)
  • %u     一周的第几天(1..7);  1 表示星期一
  • %U     一年的第几周,周日为每周的第一天(00..53)
  • %V     一年的第几周,周一为每周的第一天 (01..53)
  • %w     一周的第几天 (0..6);  0 代表周日
  • %W    一年的第几周,周一为每周的第一天(00..53)
  • %x     日期(mm/dd/yy)
  • %X     时间(%H:%M:%S)
  • %y     年份(00..99)
  • %Y     年份 (1970…)
  • %z     RFC-2822 风格数字格式时区(-0500)
  • %Z     时区(e.g., EDT), 无法确定时区则为空


举例:

$ date -d "2010-11-15 23:00:01"
Mon Nov 15 23:00:01 PST 2010
$ date -d "2010/11/15 23:0:2"
Mon Nov 15 23:00:02 PST 2010
$ date -d "2010/11/15T23:0:2"
Mon Nov 15 08:00:02 PST 2010
$
$ echo "2010-11-15 23:00:01" > date.txt
$ echo "2010/11/15 23:00:02" >> date.txt
$ cat date.txt
2010-11-15 23:00:01
2010/11/15 23:00:02
$ date -f date.txt
Mon Nov 15 23:00:01 PST 2010
Mon Nov 15 23:00:02 PST 2010
$
$ ls -l
total 4
-rw-r--r-- 1 znan sybase    40 Nov 15 21:14 date.txt
$ date -r date.txt
Mon Nov 15 21:14:36 PST 2010
$
$ date -I
2010-11-15
$ date -Ihours
2010-11-15T21-0800
$ date -Iminutes
2010-11-15T21:16-0800
$ date -Iseconds
2010-11-15T21:16:24-0800
$
$ date -R
Mon, 15 Nov 2010 21:47:08 -0800
$ date -u
Tue Nov 16 05:47:13 UTC 2010
$
$ date +"Today is %A."
Today is Monday.
$ date +"Date:%b. %e, %G"
Date:Nov. 15, 2010
$ date +"Date: %b.%e, %G"
Date: Nov.15, 2010
$ date +"%x %X"
11/15/2010 09:50:21 PM
$ date +"%Y-%m-%d %H:%M:%S"
2010-11-15 21:51:32
$ date +"%Y-%m-%d %I:%M:%S %p"
2010-11-15 09:51:55 PM
$

作者  | 2011-12-15 11:12:28 | 阅读(262) |评论(0) | 阅读全文>>

/etc/fstab 官方文档

2011-7-20 11:05:51 阅读2155 评论0 202011/07 July20

什么是fstab

文件fstab包含了你的电脑上的存储设备及其文件系统的信息。它是决定一个硬盘(分区)被怎样使用或者说整合到整个系统中的唯一文件。

这个文件的全路径是/etc/fstab。它只是一个文本文件,你能够用你喜欢的编辑器打开它,但是必须是root用户才能编辑它。同时fsck、mount、umount的等命令都利用该程序。

具体来说: 用fstab可以自动挂载各种文件系统格式的硬盘、分区、可移动设备和远程设备等。 对于Windows与arch双操作系统用户,用fstab挂载FAT格式和NTFS格式的分区,可以在Linux中共享windows系统下的资源。

fstab文件示例

现在让我们看一下一个典型的fstab文件:

# <file system> <dir> <type> <options> <dump> <pass> none /dev/pts devpts defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/cdrom /media/cd iso9660 ro,user,noauto,unhide 0 0 /dev/dvd /media/dvd udf ro,user,noauto,unhide 0 0 /dev/fd0 /media/fl auto user,noauto 0 0 /dev/hda1 swap swap defaults 0 0 /dev/hda4 / ext3 defaults 0 1 /dev/hda3 /home xfs rw,suid,exec,auto,nouser,async 0 2 

下面是另外一个例子,其中使用了更多的挂载选项,并以 LABEL= 的方法来作为可挂载设备的标识。

proc /proc proc rw,relatime 0 0 udev /dev devtmpfs rw,nosuid,relatime,size=10240k,nr_inodes=94876,mode=755 0 0 sys /sys sysfs rw,relatime 0 0 devpts /dev/pts devpts rw,relatime,mode=600,ptmxmode=000 0 0 none /dev/shm tmpfs defaults,rw,relatime,size=400M 0 0 tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 LABEL=BOOT /boot ext2 defaults 0 1 LABEL=ROOT / ext4 defaults,noatime 0 1 LABEL=USR /usr ext4 defaults,noatime 0 0 LABEL=VAR /var ext4 defaults,noatime 0 0 LABEL=OPT /opt ext4 defaults,noatime 0 0 LABEL=HOME /home ext4 defaults,noatime 0 0 

fstab 文件组成

让我们对fstab的用法进行一个详细的了解。/etc/fstab由下面的 fields 组成 (fields之间以空格或tab分开):

<file system> <dir> <type> <options> <dump> <pass> 
  • <file systems> - 存储设备的标识 (i.e. /dev/sda1).
  • <dir> - 告诉 mount 命令应该将文件设备挂载到哪里。
  • <type> - 定义了要挂载的设备或是分区的文件系统类型,支持许多种不同的文件系统,如 ext2, ext3, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap 以及 auto。 'auto' 类型使 mount 命令对这文件系统类型进行猜测,这对于如 CDROM 和 DVD 之类的可移动设备是非常有用的。
  • <options> - 定义了不同文件系统的特殊参数,不同文件系统的参数不尽相同。其中一些比较通用的参数有以下这些:
  • auto - 文件系统将在启动时,或被键入了 'mount -a' 的命令时自动被挂载。
  • noauto - 文件系统只在你的命令下被挂载。
  • exec - 允许执行此分区的二进制文件(默认值)。
  • noexec - 不允许此文件系统上的二进制文件被执行。
  • ro - 以只读模式挂载文件系统。
  • rw - 以读写模式挂载文件系统。
  • sync - I/O 同步进行。
  • async - I/O 异步进行。
  • flush - 指定 FAT 格式更加频繁地刷新数据,使得如复制对话框或是进度条持续到文件被写入到磁盘中。
  • user - 允许任意用户来挂载这一设备(同时有 noexec, nosuid, nodev 参数的属性)。
  • nouser - 只能被 root 挂载(默认值)。
  • defaults - 默认的挂载设置(即 rw, suid, dev, exec, auto, nouser, async)。
  • suid - 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限。
  • nosuid - 禁止 suid 操作和 sgid 位。
  • noatime - 不要更新文件系统上 inode access 记录,可以提升性能(参见 atime_options)。
  • nodiratime - 不要更新文件系统上 directory access inode 的记录,可以提升性能(参见 atime_options)。
  • relatime - 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见 atime_options)。
  • <dump> dump utility 用来决定何时作备份. 安装之后 ( ArchLinux 默认未安装 ), dump 会检查其内容,并用数字来决定是否对这个文件系统进行备份。 允许的数字是 0 和 1 。0 表示忽略, 1 则进行备份。大部分的用户是没有安装 dump 的 ,对他们而言 <dump> 应设为 0。
  • <pass> fsck 读取 <pass> 的数值来决定需要检查的文件系统的检查顺序。允许的数字是0, 1, 和2。 根目录应当获得最高的优先权 1, 其它所有需要被检查的设备设置为 2. 0 表示设备不会被 fsck 所检查。

文件系统标识

/etc/fstab配 置文件中你可以以三种不同的方法表示文件系统:通过 kernal naming 描述, 通过 UUID 或者通过 label。使用 UUID 或是 label 的好处在于它们与磁盘顺序无关。如果你在 BIOS 中改变了你的存储设备顺序,或是重新拔插了存储设备,或是因为一些 BIOS 可能会随机地改变存储设备的顺序,那么用 UUID 或是 label 来表示将更有效。

Kernel naming

你可以使用 fdisk 来获得 kernal naming 表示:

# fdisk -l ... Device Boot Start End Blocks Id System /dev/sda1 * 1 2550 20482843+ b W95 FAT32 /dev/sda2 2551 5100 20482875 83 Linux /dev/sda3 5101 7650 20482875 83 Linux /dev/sda4 7651 121601 915311407+ 5 Extended /dev/sda5 7651 10200 20482843+ 83 Linux /dev/sda6 10201 17849 61440561 83 Linux /dev/sda7 17850 18104 2048256 82 Linux swap / Solaris /dev/sda8 18105 18113 72261 83 Linux /dev/sda9 18114 121601 831267328+ 7 HPFS/NTFS 

UUID

UUID 由生成工具 (mkfs.*) 在创建文件系统时生成。 blkid 命令将显示已挂载设备的 UUID 值:

# blkid /dev/sda1: UUID="76E4F702E4F6C401" LABEL="vista" TYPE="ntfs" /dev/sda2: LABEL="Root" UUID="24f28fc6-717e-4bcd-a5f7-32b959024e26" TYPE="ext4" /dev/sda6: LABEL="Home" UUID="03ec5dd3-45c0-4f95-a363-61ff321a09ff" TYPE="ext4" /dev/sda7: LABEL="swap" UUID="4209c845-f495-4c43-8a03-5363dd433153" TYPE="swap" /dev/sda10: UUID="0ea7a93f-537c-4868-9201-0dc090c050e4" TYPE="crypto_LUKS" /dev/mapper/sda10: UUID="d3560bbb-b5d5-46c5-a7a8-434c885217c7" UUID_SUB="425ab275-d520-4636-8d16-55fb2b957971" TYPE="btrfs" 

一个使用 UUID 标识的 /etc/fstab 配置文件例子如下所示:

# <file system> <dir> <type> <options> <dump> <pass> none /dev/pts devpts defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/cdrom /media/cd iso9660 ro,user,noauto,unhide 0 0 /dev/dvd /media/dvd udf ro,user,noauto,unhide 0 0 /dev/fd0 /media/fl auto user,noauto 0 0 UUID=24f28fc6-717e-4bcd-a5f7-32b959024e26 / ext4 defaults,noatime 0 1 UUID=03ec5dd3-45c0-4f95-a363-61ff321a09ff /home ext4 defaults,noatime 0 2 UUID=4209c845-f495-4c43-8a03-5363dd433153 swap swap defaults 0 0 

Label

使用这一方法,设备或是分区一定要被标识。标识设备你可以使用一些通用工具,如 e2label 对 ext2,ext3, ext4分区进行标记。gparted也是一个不错的工具。需要注意的是,并不是所有格式的分区都支持标记 (如 FAT 文件系统就不支持标记)。

在尝试对设备进行标识时设备不能被挂载。你可以通过一个 LiveCD/DVD/USB 启动,用如 gparted 或是 e2label 来对设备进行标识。

 e2label /dev/<disk-or-partition> Arch_Linux 

label 最多可以有 16 个字符长。理论上 label 可以包含空格,但是如果这样做将无法让 fstab 或是 GRUB 配置文件识别出来。

label 命名应该足够清晰以防止可能的冲突。在 fstab 中以 label 来标识设备如下例所示:

# <file system> <dir> <type> <options> <dump> <pass> none /dev/pts devpts defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/cdrom /media/cd iso9660 ro,user,noauto,unhide 0 0 /dev/dvd /media/dvd udf ro,user,noauto,unhide 0 0 /dev/fd0 /media/fl auto user,noauto 0 0 LABEL=Arch_Linux / ext4 defaults,noatime 0 1 LABEL=Arch_Swap swap swap defaults 0 0 

建议

atime 参数

使用 noatime, nodiratime or relatime 可以提升 ext2, ext3 及 ext4 格式磁盘的性能。 Linux 在默认情况下每次在磁盘上读取(或写入)数据时都会产生一个记录。这是在 Linux 用于服务器而设计的,在桌面使用中意义不大。这些参数对于大部分的程序来说都是有效的。但对于 mutt (它需要这些记录信息),你应该仅仅使用 realtime 选项。

tmpfs

Tmpfs 是一个临时文件系统,驻留于你的交换分区或是内存中(取决于你的使用情况)。它的意义在于提高系统一些部分的速度,并能在重启时自动清除一些文件。

tmpfs 可以被安全使用在的目录有 /tmp, /var/lock and /var/run. 不要将之使用于 /var/tmp, 因为这一目录中的临时文件在重启过程中还是被保留。

Warning: 一些 daemon 进程仍然将一些文件(或目录)安装在 /var/lock 和 /var/run 下。因此需要编辑 /etc/rc.d 下的脚本来使它们正常工作 (如 lighttpd)。

默认情况下, tmpfs 分区被设置为你总的内存的一半,当然你可以自由设定这一值。注意实际中内存和交换分区的使用情况取决于你的使用情况,而 tmpfs 分区在其真正使用前是不会占用存储空间的。

要在 /tmp,/var/lock 和 /var/run 下使用 tmpfs,在 /etc/fstab 中添加如下几行:

 tmpfs /tmp tmpfs defaults,nodev,nosuid,mode=1777 0 0 tmpfs /var/lock tmpfs defaults,nodev,nosuid,noexec,mode=1777,size=10m 0 0 tmpfs /var/run tmpfs defaults,nodev,nosuid,noexec,mode=0755,size=10m 0 0 

你可以在这里指定其大小,但是在这种情况下你应该突出 mode 部分,以确保它们可以有正确的权限设置。在上面的例子中, /tmp 将会占用你的一半内存,其它的两个目录被设置为各占用 10 MB 大小。

参阅 mount 命令 man 手册以获得更多的内容。

重启后方能生产。注意尽管这样做非常地诱人和有效,但是千万不要直接执行 mount -a 命令,因为可能造成当下这些目录的不可访问 (比如你应该保证 lockfiles 的正常存在)。然而,如果它们都是空的,那么就可以直接执行 mount -a 而不必重启电脑。在重启前你可以执行 mount /tmp 等来激活其中一些选项,其余的则要在重启后生效。

在进行了如上面的改动后,要检验它是否如愿起作用你可以用 df 命令( df -h):

 tmpfs 2.0G 20K 2.0G 1% /tmp tmpfs 10M 0 10M 0% /var/lock tmpfs 10M 48K 10M 1% /var/run 

修正因 /var 分区造成关机异常问题

将 /var/lock 和 /var/run 挂载为 tmpfs 时, 如果是一个独立的分区 /var 将不能在关机时被卸载。这是因为 tmpfs 文件系统不被 rc.shutdown 所卸载。

要修复这一问题,需要创建 /etc/rc.d/functions.d/clean_umount 文件,在其中加入

clean_umount() { umount /var/lock umount /var/run } add_hook shutdown_postkillall clean_umount # vim: set ft=sh : 

这将使 /var/lock 和 /var/run 在所有进程和守护进程结束后,在卸载 /var 之前被卸载。

解决包含有空格的路径名无法使用的问题

你可以使用 "\040" 转义字符来表示空格(以三位八进制数来进行表示)

/dev/sda7 /home/username/Camera\040Picures ext4 defaults,noatime 0 2 UUID=7D4500B3071E18B2 /media/100\040GB\040(Storage) ntfs defaults,noatime,user 0 0 

外部设备

外部设备可以被即时地挂载,但是如果加入了 nofail 选项将被忽略。这用于阻止启动时的报错。

/dev/sdg1 /media/backup jfs noauto,nofail,rw,noatime,nodiratime 0 2

用fstab自动挂载FAT32和NTFS分区

1.先在用fdisk -l(可能需要在root权限下)得到硬盘信息表,例如:

# Device Boot Start End Blocks Id System /dev/sda1 * 1 2397 19253871 b W95 FAT32 /dev/sda2 2398 3144 6000277+ 83 Linux /dev/sda3 3145 9729 52894012+ 5 Extended /dev/sda5 3145 3152 64228+ 83 Linux /dev/sda6 3153 3276 995998+ 82 Linux swap / Solaris /dev/sda7 3277 7340 32644048+ 83 Linux /dev/sda8 7341 9729 19189611 7 HPFS/NTFS 

从上面知道,这台电脑上只有一个硬盘,其中分区sda1和sda8为NTFS格式,sda1为可以启动的,因而可能为window的系统所在盘。 下面把系统盘以只读方式持载上去,非系统盘sda8以读写方式挂载上去(不能挂载在"/"及其以下的任何目录)。

2.用你喜欢的编辑器在终端中打开/etc/fstab,例如: nano /etc/fstab

在文件末尾加入:

/dev/sda1 /mnt/WindowsC vfat defaults,codepage=936,iocharset=cp936,umask=0222 0 0 /dev/sda8 /mnt/WindowsD ntfs defaults,iocharset=utf8,umask=000,nls=utf8 0 0 

保存,退出。

Warning: 使用936的codepage挂在fat32分区可能会造成linux下识别中文正常但是到windows下反而出现乱码,推荐替换成utf8,但是dmesg提示警告,没有关系,n多人用了这么长时间都没有问题
/dev/sda1 /mnt/WindowsC vfat user,utf8,umask=000 0 0 

3.在终端中输入 mount -a ,你就应该能在/mnt/WindowsC下找到你的系统分区sda1内容,在/home/username/WindowsD中找到sda8的内容(其中username指用户名)。

相关内容

参考资料

作者  | 2011-7-20 11:05:51 | 阅读(2155) |评论(0) | 阅读全文>>

(转)Linux fstab参数详解

2011-7-20 10:32:19 阅读765 评论0 202011/07 July20

1、fstab文件的作用

        使用权限 : 超级使用者

  使用方式 : 使用编辑器来修改 /etc/fstab (eg. vi /etc/fstab)

  说明 : 存放档案系统与目录结构对应资料的档案

文 件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount/directoryname"命令来加载一个文件 系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、 mount、umount的等命令都利用该程序。

这个文件描述系统中各种文件系统的信息。一般而言,应用程序仅读取这个文件,而不对它进行写操作。对它的维护是系统管理员的工作。在这个文件中,每个文件系统用一行来描述,在每一行中,用空格或TAB符号来分隔各个字段,文件中以*开头的行是注释信息。Fstab文件中的纪录的排序十分重要。因为fsck,mount或umount等程序在做它们的工作时会按此顺序进行。 

 

2、下面是/etc/fatab文件的一个示例行:
fs_spec fs_file fs_type fs_options fs_dump fs_pass 
/dev/hda1 /   ext2  defaults    1    1 

fs_spec - 该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:IDE设备一般描述为 /dev/hdaXN,X是IDE 设备通道(a, b, or c),N代表分区号;SCSI设备一描述为/dev/sdaXN。对于NFS情况,格式一般为:,例如: `knuth.aeb.nl:/'。对于procfs,使用`proc'来定义。 对文件系统的定义(fs spec),它描述了将被装载的块设备或远程文件系统。对于通常的mount操作而言,这个字段应该包括一个将被装载的块设备的设备结点(通过mknod 命令来创建)或指向这类结点的连接(例如/dev/cdrom或/dev/sdb),对于NFS mount操作,这个字段应该包含host:dir格式的信息,例如:knuth.aeb.nl:/,对于进程文件系统procfs,使用proc。

  除了显示的使用设备名,你可以使用设备的UUID或设备的卷标签,例如,你可以在这个字段写成“LABAL=root”或 “UUID=3e6be9de -8139-11d1-9106-a43f08d823a6”,这将使系统更具伸缩性。例如,如果你的系统添加或移除了一个SCSI硬盘,这有可以改变你 的设备名,但它不会修改你的卷标签。

fs_file - 该字段描述希望的文件系统加载的目录点,对于swap设备,该字 段为none;对于加载目录名包含空格的情况,用40来表示空格。描述文件系统的载入点,对于交换分区(swap),这个字段定义为none,如果在载入 点的路径中包含空格符,可以用“/040”来替代空格符。

fs_type - 定义了该设备上的文件系统,一般常见的文件类型为ext2  (Linux设备的常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、iso9600等.文件系统类型(fs vfstype),主要用来定义文件系统的类型。Linux系统支持大量的文件类型,包括sdfs,affs,autofs,jfs,minix, msdos, ncpfs, nfs, ntfs, proc, qnx4, reiserfs, romfs,,smbfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs等等。如果想了解你的kernel目前支持哪些文件系统,可以查看/proc/filesystems的内容。如果这个字段定义为swap,这条纪 录将关联到一个用于交换目的的文件或分区。如果这个字段定义为ignored,这行将被忽略。这对于显示目前没有使用的分区非常有用。
 
fs_options  - 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。文件系统选项(fs mntops)在装载文件系统时使用的装载选项。多个选项之间用逗号做分隔符,这些选项列表包括了装载类型以及对于该文件系统合适的其它装载选项。对于非 NFS系统可用的装载选项可以参看mount命令的说明,对于nfs系统的选项可以查看关于nfs的文档。对于所有文件系统都适用的选项有noauto (当使用mount –a命令时不载入),user(允许用户进行装载),owner(允许设备所有人装载),_netdev(设备需要网络),后两个选项是linux系统所 特有的。

对于大多数系统使用"defaults"就可以满足需要。其他常见的选项包括:
选项              含义
ro    以只读模式加载该文件系统
sync   不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度
user   允许普通用户加载该文件系统
quota   强制在该文件系统上进行磁盘定额限制
noauto  不再使用mount -a命令(例如系统启动时)加载该文件系统

fs_dump - 该选项被"dump"命令使用来检查一个文件系统应该以多快频率 进行转储,若不需要转储就设置该字段为0.文件系统频率(fs_freq),被dump程序使用来确定哪个文件系统需要dump,如果最后一个字段没有设 置,系统将认为其值为0,而dump程序则认为此文件系统无需dump。

fs_pass - 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺 序,根文件系统"/"对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0.被fsck程序所使用来确定进行在 系统重启进行文件系统检查时的顺序,对于根系统/这个值应设为1,其它文件系统可以设为2,在同一个物理硬盘内的文件系统应该被顺序检测,而不同硬盘中的 文件系统则应该同时检测以充分利用系统的并行性。如果最后一个字段值为0或没有设置,fsck程序装跳过此文件系统的检测。在linux编程中可以用 getmntent过程来访问这个文件的内容。

 

3、修改/etc/fstab实现自动挂载Windows分区,并显示中文目录
LABEL=/            /               ext3      defaults                  1 1
none                  /dev/pts   devpts gid=5,mode=620 0 0
none                  /proc        proc    defaults                   0 0
none                  /dev/shm tmpfs defaults                   0 0
LABEL=/usr     /usr           ext3    defaults                   1 2
/dev/hda9          swap       swap defaults                    0 0
/dev/scd0         /media/cdrom0 udf,iso9660 ro,user,noauto 0 0
/media/Ubuntu-5.04-install-i386.iso /media/Ubuntu_5.04 iso9660 rw,loop 0 0
#添加如下几行
/dev/hda1 /mnt/win_c vfat codepage=936,iocharset=cp936 0 0
/dev/hda5 /mnt/win_d vfat codepage=936,iocharset=cp936 0 0
/dev/hda6 /mnt/win_e vfat codepage=936,iocharset=cp936 0 0

#soft选项告诉内核遇到网络问题时向用户进程发送I/O错误(EIO).默认的hard选项将导致进程被挂起,直到能够访问NFS服务器.
my.nfs.server.com:/path/on/server /path/on/client nfs rw,soft 0 0

4、对部分分区格式的支持需要编译相关的支持到内核了来实现,如NTFS。


转自http://blog.csdn.net/liuyuan_jq/article/details/1826131

作者  | 2011-7-20 10:32:19 | 阅读(765) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018

登录  
 加关注