winhex怎么在linux底下运行 并且完整的复制某个分区

发布网友 发布时间:2022-04-23 00:23

我来回答

5个回答

热心网友 时间:2023-10-08 21:02

GRUB是一个多重开机管理工具,它可用来激活Linux、BSD、OS/2、BeOS与Windows95/98/NT等众多操作系统,GRUB是一个于操作系统之外的开机程序,并不像LILO是依靠Linux才能进行设定与维护,也提供了类似Bash的命令列模式,让使用者更方便地设定GRUB。

取得与安装GRUB:

GRUB的原始码压缩档可至GNU的ftp站台( ftp://alpha.gnu.org/gnu/GRUB/ )下载最新版本 ,下载回来后可存放在/usr/local/src/目录下并将其解压缩:

cp grub.tar.gz /usr/local/src/

tar zxvf grub.tar.gz

在GRUB的目录下执行configure文件、make与make install,如下:

./configure

make

make install

当make install完成后GRUB也已顺利安装完毕,并有三个指令文件也被安装至系统中:grub、grub-install与mbchk。而GRUB的相关档案通常被安装到/usr/local/share/grub的目录下。

接下来先假设硬盘分割如下:

hda1:Windows98 (hd0,0)

hda2:Slackware Linux (hd0,1)

hdb1:Mandrake Linux (hd1,0)

注意的是GRUB认硬盘的方式跟Linux是不一样的,在Linux中第一颗IDE硬盘是hda(SCSI:sda)以此类推,而GRUB则将第一颗IDE硬盘视为hd0(SCSI:sd0)以此类推;在Linux中第一颗IDE硬盘的第一个分割区是hda1(SCSI:sda1)以此类推,而GRUB将第一颗IDE硬盘的第一个分割区表示为hd0,0(SCSI:sd0,0)以此类推。

制作GRUB激活磁盘:

制作GRUB激活磁盘其实不难,首先需要两个必备档案,分别是stage1与stage2,可以在GRUB的安装目录下的i386-pc目录中找到这两个档案,以及一片已格式化的干净磁盘,然后依照下面的制作步骤就可制作出GRUB的激活磁盘:

cd /usr/local/share/grub/i386-pc/

dd if=stage1 of=/dev/fd0 bs=512 count=1

dd if=stage2 of=/dev/fd0 bs=512 seek=1

制作好了GRUB的开机磁盘之后,就可以试着使用GRUB来进行多重操作系统的开机激活。

利用GRUB开机磁盘激活系统:

接着重新激活系统并设定BIOS由磁盘开机,然后就可以看到grub>的命令列正等待指令,这就是GRUB的命令列环境,表示GRUB已顺利地从激活磁盘加载并正常运作当中了。现在假设要激活上述的Slackware Linux的话,在GRUB提示符号下键入如下的指令,如此就会进入Slackware Linux系统:

grub> root (hd0,1)

grub> kernel /boot/vmlinuz root=/dev/hda2 ro

grub> boot

root指令会mount后面参数的硬盘分割区位置。当mount完成后kernel指令会加载其参数的系统核心,Linux的核心通常是在/boot目录下名为vmlinuz的档案。最后的两个参数都是要传给刚加载的核心,root=/dev/hda2是告诉核心根目录的位置是在/dev/hda2,并要求挂载成只读(ro)。
最后执行boot指令以进行Slackware系统的开机激活。同理,位在hdb1上的Mandrake Linux也可以用类似的方式激活:

grub> root (hd1,0)

grub> kernel /boot/vmlinuz root=/dev/hdb1 ro

grub> boot

现在root指令改mount (hd1,0)的分割区,此分割区就是Mandrake Linux的根目录位置。然后kernel指令加载Mandrake的核心文件,告诉核心Mandrake系统的根目录是在/dev/hdb1,并要求挂载成只读。最后以boot指令进行系统的激活。

以上的方式都可以顺利地激活Linux系统,但是对Windows系统可是不管用的,要激活在hda1上的Windows98的话,则要换些指令才行得通,请在GRUB命令列中依序键入下列指令就可以进入Windows98:

grub> rootnoverify (hd0,0)

grub> chainloader +1

grub> makeactive

grub> boot

以rootnoverity指令让GRUB不要mount (hd0,0)的分割区,只要知道待会是要激活此分割区上的操作系统。chainloader +1的意思是指定此分割区上的第一个扇区来做激活。makeactive指令是要在此分割区上设定active的旗标,只要是Windows的操作系统都是要这么做的。最后以boor指令进行开机。

使用硬盘上的GRUB开机激活:

GRUB的开机磁盘固然方便好用,但制作GRUB开机磁盘的目的只在于系统救援之用,要能确实享用GRUB的强大功能,最好是可以用硬盘上的GRUB来进行开机,就像LILO一样安装到硬盘的MBR上。

首先要在系统上建立GRUB专用的开机目录/boot/grub,如同制作GRUB的开机磁盘一样须要stage1文件和stage2档,所以请把GRUB安装目录下的i386-pc目录中的stage1文件和stage2档copy到刚刚建立的/boot/grub目录底下:

mkdir /boot/grub

cp /usr/local/share/grub/i386-pc/stage* /boot/grub

完成之后键入指令GRUB指令进入GRUB命令列环境,在GRUB命令列环境里键入如下的指令:

grub> root (hd0,2)

grub> setup (hd0)

grub> quit

如此即可完成GRUB在/boot/grub中的开机设定,先用root指令mount目录/boot/grub所在的位置,其中的(hd0,2)就是指上面假设的Slackware系统,也就是说/boot/grub目录是在Slackware系统中所建立的。所若是要改成由Windows98来放置GRUB的stage档的话,就要在Windows98的系统上建立/boot/grub的目录,并将stage1档和stage2档存放在Windows98上的\boot\grub目录里,而root指令的参数也要改为Windows98所在的分割区,也就是上面假设的(hd0,0)。第二个指令setup是指要将GRUB安装在哪个位置来开机激活,如果是要安装到硬盘的MBR上的话只须加上硬盘的位置如(hd0),若是要安装到硬盘第一个分割区上的第一个扇区的话就要加上分割区的位置如(hd0,0)。

除非是有特殊的情况,不然最好是装在硬盘的分割区上较安全。最后使用quit指令离开GRUB命令列环境。

使用选项清单:

现在虽然可以用GRUB来做多重开机的管理,但每次都要输入繁杂的指令也不方便,因此GRUB也提供了选项清单的方式,让每次开机时只须按上下键选择要开机的系统再按下Enter键即可进行开机而不必再输入任何的指令。GRUB在开机时会先寻找/boot/grub目录下的menu.lst档,找到的话GRUB就会依照menu.lst文件的内容显示一个选项清单的图形接口,让使用者选择要开机的操作系统。

首先在/boot/grub目录下建立一个新档名为menu.lst,底下是menu.lst文件的设定范例:

#/boot/grub/menu.lst

timeout 30

default 0 #Default Slackware Linux

fallback 1 #Windows98

fallback 2 #Mandrake Linux

color light-green/brown blink-red/blue

# For booting Slackware Linux

title Slackware

root (hd0,1)

kernel /boot/vmlinuz root=/dev/hda2 ro

#For booting Windows

title Windows98

rootnoverify (hd0,0)

chainloader +1

makeactive

#For booting Mandrake Linux

title Mandrake

root (hd1,1)

kernel /boot/vmlinuz root=/dev/hdb1 ro

上面menu.lst文件的范例是针对之前所假设的硬盘分割区上配置的操作系统而设定的。menu.lst是以#符号当作注解的开头,GRUB会忽略所有以#符号启始的注解行。timeout指令是指GRUB激活之后的等待时间,以秒为单位,所以上面的范例就是等待30秒的意思。default指令就是当GRUB激活之后等待的时间超过指令timeout所设定的时间的话,就会指令default后面参数所指定的系统,参数0代表menu.lst文件中第一个被设定的操作系统,以上面的范例而言就是指Slackware Linux,因为它是最先被设定的,如果参数改为1的话就是激活Windows98,以此类推。fallback指令是指当GRUB激活指令default所指定的操作系统失败的话,便会激活指令fallback所指定的操作系统,以上面的范例而言,当Slackware激活失败的话GRUB就会激活fallback所指定的便是Windows98。指令color可以设定GRUB选项清单的前景/背景的颜色,有关GRUB可以指定的颜色可以查看GRUB的info文件。接下来的指令就是设定操作系统,指令title可以设定该操作系统的标题。

设定好menu.lst文件后,将此设定文件存在/boot/grub目录底下即可,然后重新开机便会看到GRUB漂亮的选项清单,现在就可以试着激活不同的操作系统了。

以上是GRUB的基本使用说明,当硬盘上有许多的操作系统时,使用GRUB是理所当然的,并且是正确的选择,就算硬盘上只有一两种操作系统也可以使用GRUB。当然GRUB的功能是很强大的,已足以取代传统的LILO,可以多阅读GRUB的info文件里面的说明。

本人安装有多个操作系统,有XP,多个版本核心的LINUX,使用GRUB的过程中有过多种情况发生,下面和大家讨论解决的方法。

在多个操作系统的安装中,有时候会使GRUB 丢失,如我在重装XP的时候,XP 就把GRUB 从MBR 中清除了。还有在升级LINUX 的过程中GRUB 安装失败或者进入控制台状态了,也需要重新安装GRUB。

GRUB 的功能很多,对于一般的使用者来说主要要知道ROOT,SETUP,INSTALL,ROOTNOVERIFY,CHAINLOADER,GRUB.CONF,针对不同文件系统的STAGE1,STAGE2文件,就可以了。

GRUB下载什么的就不说了,一般也不需要下载,安装盘都带有。

ROOT的使用格式是:ROOT(HDX,Y) 其中X从0---N,Y也是。第一个硬盘,第一个分区就是(HD0,0),第一个硬盘,第二个分区就是(HD0,1);

第二个硬盘,第一个分区就是(HD1,0),第二个硬盘,第二个分区就是(HD1,1);如此类推,可以知道ROOT的用法了。

ROOT是GRUB识别硬盘和文件格式的命令,告诉GRUB启动设备是什么和启动设备MOUNT的文件格式,以及下一步可以到那里找GRUB的配置文件,启动核心,或启动IMG文件等。

SETUP 和 INSTALL 是安装GRUB 到指定位置如:MBR等,具体可以看HELP文件,没有什么特殊之处。

STAGE1,STAGE2针对不同的的文件系统,都可以到GRUB的包里或/USR/SHARE/GRUB目录里找到,拷到GRUB目录下就可以了。

GRUB.CONF的格式如下:

default=0

timeout=10

splashimage=(hd1,2)/boot/grub/splash.xpm.gz

title WindowsXP

rootnoverify (hd0,0)

chainloader +1

title RedHat9

root (hd0,1)

kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/

initrd /boot/initrd-2.4.20-8.img

title Mandrake9.1

kernel (hd1,4)/boot/vmlinuz root=/dev/hdb5 quiet devfs=mount acpi=off vga=788

initrd (hd1,4)/boot/initrd.img

default=X为默认启动的系统,0为排在第一个的系统,以此类推。

timeout=X为Grub菜单停留的时间,单位为秒

title XXX,XXX为标题,也就是你要引导的操作系统的名字,可以自己修改

rootnoverify (hd0,0) 告诉 GNU GRUB 您用的 Widnows C 盘在哪里,但同时不要试图将其挂载(‘noverify’,可选项)。

chainloader +1 告诉 GNU GRUB 不要试着自己载入 Windows (自身无法完成),而应该将启动进程交给 C 盘的首扇区,那里含有原始的 DOS/Windows 启动程序。

热心网友 时间:2023-10-08 21:02

winhex 是 windows 软件,别折腾了。

dd 就是基于分区整体数据流的复制、提取。普通复制分区数据用 cp 就行了。

热心网友 时间:2023-10-08 21:03

何苦用WI_ hex ... 在linux下,用原生的元数据拷贝程序dd就强大了。

如dd if=/dev/sdXN of=/dev/sdYM
就是把所有X盘第N分区数据全部复制到Y盘第M个分区。

X和Y可以指代同一个硬盘;M分区大于等于N分区。

热心网友 时间:2023-10-08 21:03

可以使用 RANFS虚拟磁盘驱动器,把linux的硬盘通过网络挂载为Windows上的虚拟磁盘,这样比较方便

热心网友 时间:2023-10-08 21:04

把硬盘挂在朋友的机器上,在WINDOWS上使用WINHEX就行了,为啥还要搞那么麻烦呢

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com