Linux下巧做硬盘分区镜像<转>
zjh815153665
|
1#
zjh815153665 发表于 2008-07-01 20:51
Linux下巧做硬盘分区镜像<转>
Linux下巧做硬盘分区镜像<转>
Linux下巧做硬盘分区镜像 <资料来源于网上> 为了系统的安全,我们经常要用到各种备份工具软件。Mirrordir官方网址:http://mirrordir.sourceforge.net/ 它的工具功能比较强大,比较适合作能做硬盘和分区镜像。 一、 软件下载安装: mirrordir有三种包提供,一种是rpm的,这种包能直接安装;另外就是源码包;src.rpm和tar包。本文是采用RPM包安装的方法。 # wget http://mirrordir.sourceforge.net/mirrordir-0.10.49-1.i386.rpm #rpm -ivh mirrordir-0.10.49-1.i386.rpm mirrordir /home /mnt/hda9/home 二、分区镜像操纵 如果我想为/dev/hda1中的home目录做一个镜像到/dev/hdb9磁盘做一个home的镜像;因为关系到安全,比如把/dev/hda的磁盘的东西都删除了,所以在同一个磁盘内做镜像意义不是太大。所以最好把要镜像的硬盘分区放在其他的硬盘分区中。 1. Linux的硬盘分区规定 设备管理 在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。Linux 把各种 IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI 设备,则分配了一个由 sd 前缀组成的文件。例如,第一个 IDE 设备,Linux 就定义为 hda;第二个 IDE 设备就定义为 hdb;下面以此类推。而 SCSI 设备就应该是 sda、sdb、sdc 等。 分区数量 要进行分区就必须针对每一个硬件设备进行操作,这就有可能是一块IDE硬盘或是一块SCSI硬盘。对于每一个硬盘(IDE 或 SCSI)设备,Linux 分配了一个 1 到 16 的序列号码,这就代表了这块硬盘上面的分区号码。例如第一个 IDE 硬盘的第一个分区,在 Linux 下面映射的就是 hda1,第二个分区就称作是 hda2。对于 SCSI 硬盘则是 sda1、sdb1 等。 各分区的作用 在 Linux 中规定,每一个硬盘设备最多能有 4 个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4 个。对于早期的 DOS 和 Windows(Windows 2000 以前的版本),系统只承认一个主分区,可以通过在扩展分区上增加逻辑盘符(逻辑分区)的方法,进一步地细化分区。 主分区的作用就是计算机用来进行启动操作系统的,因此每一个操作系统的启动,或者称作是引导程序,都应该存放在主分区上。这就是主分区和扩展分区及逻辑分区的最大区别。Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码。以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1、hda2、hda3、hda4,而逻辑分区占用了 hda5 到 hda16 等 12 个号码。因此,Linux 下面每一个硬盘总共最多有 16 个分区。 对于逻辑分区,Linux 规定它们必须建立在扩展分区上而不是主分区上。因此,我们可以看到扩展分区能够提供更加灵活的分区模式,但不能用来作为操作系统的引导 linux挂载NTFS分区 信息来源: 邪恶八进制信息安全团队 目前网上有很多介绍在linux下mount windows NTFS的文章,说的都是重新编译内核,加入对NTFS分区的支持.但是对于一个刚刚接触linux的新手来说,又是何其痛苦的一件事,我给大家介绍一种简单的方法. 1.首先确定你的linux kernel版本是什么(Redhat9.0默认的kernel版本是2.4.20-8 ) #> rpm -qa|grep kernel 会显示类式的如下信息: kernel-pcmcia-cs-3.1.31-13 kernel-2.4.20-8 这样,你就看到了你的kernel版本是2.4.20-8 2.然后打开下面这个网址: http://rpm.pbone.net/index.php3/stat/16/limit/1/dl/40/idka/1705 找到和你的kernel版本对应的kernel-ntfs RPM包,下载. 我用的是Redhat9.0, Kernel版本是2.4.20-8,所以我找的包是kernel-ntfs-2.4.20-20.8.i686.rpm ,下载地址:ftp://ftp.uni-bayreuth.de/pub/linux/drivers/linux-ntfs/kernel-ntfs-2.4.20-20.8.i686.rpm,下载. 3.安装: #> rpm -ivh kernel-ntfs-2.4.20-20.8.i686.rpm 4.如果没有什么错误,你的系统应该已经支持NTFS了,如果报错,肯定是你找的包与你的Kernel版本不匹配.重新找找下载. 5.mount你的NTFS分区,怎样mount,不用我说了吧.呵呵 一个rpm下去,rh8挂上ntfs 我的方法(原装rh8,未升级或编译内核): 1. 上google.com搜索并下载 kernel-ntfs-2.4.18-14.i686.rpm 2. rpm -ivh kernel-ntfs-2.4.18-14.i686.rpm 3. mkdir /mnt/c 4. mount -t ntfs /dev/hda1 /mnt/c 原文 http://fr2.rpmfind.net/linux/rpm2html/search.php?query=kernel-ntfs 这个方法真是太棒了,一个RPM下去,就OK了,要选与你系统相应内核的RPM #uname -a 会有类似如下的信息出来 Linux LinuxSir01 2.4.18-17.8.0 #1 Tue Oct 8 13:51:08 EDT 2002 i686 i686 i386 GNU/Linux这就要下载与2.4.18-17.8内核相对应的。。我们要具体问题具体分析。 上面就是INTEL的CPU的。。。。。 如果有AMD的CPU,那就是类似这样的。。 Linux 4LinuxSir0 1 2..18-14 # 1 Wed Sep 4 12:13:11 EDT 2002 i686 athlon i386 GNU/Linux看一下这里,红字的地方是不是有个athlon的?那就要下载结尾是athlon.rpm,但还不能是文件名还不要带有smp之类的,上面的例子也是一样的。 然后就把下载下来的RPM安装上 #rpm -ivh ker*rpm --nodeps --force mount分区的一些具体工作: #mkdir /mnt/WinC #mount -t ntfs /dev/hda1 /mnt/WinC #cd /mnt/WinC 看一下能不能访问了?如果访问不了,说明下载的RPM与内核的版本不相对应。要再好好的想一想应该下载什么样的了。。。。。 kernel表示内核,ntfs代表支持ntfs磁盘格式,2.4.18-3代表linux系统内核的版本号,athlon代表支持AMD athlon的cpu,而ix86则代表支持intel的处理器。不知这样解释对否? 在下载版本时是需要特别注意的,版本不对是绝对不能mount成功的请先用uname -a 看看你的内核版本以及cpu内核,在针对应的下载rpm 这里可以下载 http://prdownloads.sf.net/linux-ntfs/ 当你安装完Linux系统,并且已经启动,恭喜你!如果你的硬盘上还安装了WinNT/2000系统,你试图去访问另一个NTFS分区时却遇到了麻烦。因为你所用的Linux系统没有已编译的支持NTFS文件系统的模块。怎么办?也许你会运行make menuconfig,重新定制你需要的所有模块,接着运行make modeules;make modeules_install来安装。这样不仅繁琐、费时,还可能会出现问题。或者因为编译内核对你有些棘手,太多的选择让你手足无措,你根本没有太好的方法。本文给你提供一个简单的方法,你可以轻松地去编译你所需要的支持NTFS系统的模块(ntfs.o)。以此为例,但愿对你编译其他模块有所帮助。 写此文时我用的系统是Red Hat Linux release 7.0 (Guinness) Kernel 2.2.16-22 on an i686。从一个新安装的系统开始,我们一起去编译一个自己想要的支持NTFS文件系统模块。 一、找到编译内核所需要的.config文件。 在/usr/src/linux/configs目录下有若干编译内核所用的配置。选择我们想要的配置,将它复制到/usr/src/linux目录下,改名为.config。 cp /usr/src/linux/configs/kernel-2.2.16-i686.config /usr/src/linux/.config 二、修改.config文件,去掉不用的模块,加上自己想要的模块。 打开.config,有许多XXXX=m的项,这些都是要被编译为模块的项,因为我们不希望编译这些模块,所以要把XXXX=m的项统统去掉。然后再加上我们想要的模块,将# CONFIG_NTFS_FS is not set 改为CONFIG_NTFS_FS=m 当然,可以用你熟悉各种工具来做这件事。 三、编译NTFS模块。 在/usr/src/linux目录下运行命令make modules来编译我们想要的NTFS模块。 四、安装NTFS模块。 编译后得到的ntfs.o在/usr/src/linux/fs/ntfs目录下,手动将它复制到正确的目录下。 cp /usr/src/linux/fs/ntfs/ntfs.o /lib/modules/2.2.16-22/fs/ 这里的2.2.16-22是你的linux核心的版本号,请注意。 注意:千万不能运行命令make modules_install,否则将带来严重的后果,它会删除你系统中的所有模块,只安装刚刚编译的模块(ntfs.o)。 五、载入NTFS模块. 运行命令depmod;modprobe ntfs 试着访问你的NTFS文件系统吧,祝你成功! 有些模块依赖于你的系统内核,所以不适用本文所提供的方法。还有些模块和其他模块有依赖关系。如果你不熟悉这些依赖关系的话,建议你在第二步去掉不用的模块选项后,通过make menuconfig来加上自己想要的模块。 自己编译NTFS分区的模块(以2.4.18-3为例) 1.用uname -a [查看一下自己用的内核版本.] 2.用rpm -q kernel-source-2.4.18-3 [查看是否装了内核源程序.] 3.假定已经安装好了源程序,到/usr/src/linux-2.4.18-3/目录. 4.用make mrproper [清除多余的无用模块.] 5.用rpm -q –pf \'%{ARCH}\\n\' kernel-2.4.18-3 [看一下用configs下的哪个ixxx.config文件.(本机为i686)] 6.用自己熟悉的编辑器(vi)打开/usr/src/linux-2.4.18-3/configs/kernel- 2.4.18-3.i686.config查NTFS,将这两行改为config NTFS fs=m和config NTFS rw=m保存. 7.用make config 到NTFS时选m,其余的默认回车.[有的文章用make menuconfig或make xconfig,但我在Redhat7.3下没有这两个?] 8.用自己熟悉的编辑器(vi)打开/usr/src/linux-2.4.18-3/Makefile文件,将EXTRAVERSION = -Xcustom改成EXTRAVERSION = -X保存退出.(X为数字) 9.用make dep 10.用make modules SUBDIRS=fs/ntfs(这时ntfs.o已经产生) 11.用mkdir /lib/modules/2.4.18-3/kernel/fs/ntfs 12.用cp /usr/src/linux-2.4.18-3/fs/ntfs/ntfs.o 到刚才建立的目录. 13.用chmod 644 /lib/modules/2.4.18-3/kernel/fs/ntfs/ntfs.o 14.用depmod -a 15. 用vi /etc/fstab加入以下内容 /dev/hdxy___/mnt/XXX___ntfs___noauto,user,uid=z,gid=z,umask=007,iocharset =cp936___0_0保存退出.[hdxy,x为IDE号a.b.c.d,y为分区号.XXX为自己起的名字.z为用户和组的ID号] 16.用时用mount /mnt/XXX退出用umount /mnt/XXX 全自动加载 如果是经常进行文件交换,希望一进入Linux就加载特定的分区而且又想把这一分区挂接到固定的目录的话, 你可以使用这种方式。 用任一文本编辑器打开/ect目录下的fstab文件,把 /dev/hda5 /mnt/win-c ntfs umask=0000 defaults,iocharset=cp936 0 0 /dev/hda3 /mnt/win-c vfat defaults,codepage=936,iocharset=gb2312 0 0添加到最后一行后面,保存后退出。以后每次重新启动系统时都会自动加载。说明:“vfat”表示加载的是FAT32文件系统,如果是“msdos”则是FAT16文件系统,“ntfs”是NT的NTFS文件系统。要是不加umask=0000,就只有root可访问ntfs的盘了。 mount -o iocharset=cp936 -t ntfs /dev/hdaX /mnt 支持中文 mount用法(sakulagi) fat32的分区 mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom ntfs的分区 mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom iso文件 mount -o loop /abc.iso /mnt/cdrom 软盘 mount /dev/fd0 /mnt/floppy USB闪存 mount /dev/sda1 /mnt/cdrom 所有/etc/fstab内容 mount -a 可以指定文件格式"-t 格式", 格式可以为vfat, ext2, ext3等. linux模拟器-送给那些想尝试一下linux的朋友 本软件包专门是为那些想尝试一下linux,但却不方便安装linux的朋友使用。 本软件包不需要安装绝对绿色只要解压后,运行linux.bat这个文件就可以了。 http://www.edowning.net/view.asp?id=408 |