前几天装上了从淘宝买来的光驱位硬盘盒,我也就把光驱废掉了换成了一个硬盘,这样Ubuntu和win7可以开机的时候切换了。
因为我在两个硬盘上分别装的系统,而不是一个硬盘上双系统。
但是问题来了,ubuntu下不会像插u盘那样自动挂载硬盘。那么怎么办?
首先,我们应该看看硬盘的情况,比如分区这些。
1 huangjacky@huangjacky-laptop:~$ sudo fdisk -l 2 [sudo] password for huangjacky: 3 omitting empty partition (5) 4 5 Disk /dev/sda: 500.1 GB, 500107862016 bytes 6 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors 7 Units = sectors of 1 * 512 = 512 bytes 8 Sector size (logical/physical): 512 bytes / 512 bytes 9 I/O size (minimum/optimal): 512 bytes / 512 bytes 10 Disk identifier: 0x95b895b8 11 12 Device Boot Start End Blocks Id System 13 /dev/sda1 * 63 102414374 51207156 7 HPFS/NTFS/exFAT 14 /dev/sda2 102414436 976768064 437176814+ f W95 Ext'd (LBA) 15 /dev/sda5 102414438 348176744 122881153+ 7 HPFS/NTFS/exFAT 16 /dev/sda6 348176808 593939114 122881153+ b W95 FAT32 17 /dev/sda7 593939178 802671659 104366241 7 HPFS/NTFS/exFAT 18 /dev/sda8 802671723 874032389 35680333+ 7 HPFS/NTFS/exFAT 19 /dev/sda9 874032453 976768064 51367806 7 HPFS/NTFS/exFAT 20 21 Disk /dev/sdb: 80.0 GB, 80026361856 bytes 22 255 heads, 63 sectors/track, 9729 cylinders, total 156301488 sectors 23 Units = sectors of 1 * 512 = 512 bytes 24 Sector size (logical/physical): 512 bytes / 512 bytes 25 I/O size (minimum/optimal): 512 bytes / 512 bytes 26 Disk identifier: 0xe445604b 27 28 Device Boot Start End Blocks Id System 29 /dev/sdb1 * 2048 148301823 74149888 83 Linux 30 /dev/sdb2 148303870 156299263 3997697 5 Extended 31 /dev/sdb5 148303872 156299263 3997696 82 Linux swap / Solaris
可以看见sda是我win7的硬盘分区,那么接下来就是挂载。
1 huangjacky@huangjacky-laptop:~$ sudo mount /dev/sda1 /mnt/win_c
这个命令将/dev/sda1分区挂载到指定的目录,那么我们打开这个目录就是打开win7系统的C盘了。
卸载:
1 huangjacky@huangjacky-laptop:~$ sudo umount /mnt/win_c
手动操作就是这样,那么我们有这么多个盘,每次都这样操作岂不是很麻烦?
所以这里我们需要编写一个sh脚本。
1 #! /bin/sh 2 # 挂载所有的硬盘到指定目录、 3 mymount() 4 { 5 echo "check and create mount directory!" 6 if [ ! -d "/mnt/win_c" ] 7 then 8 mkdir /mnt/win_c 9 fi 10 11 if [ ! -d "/mnt/win_d" ] 12 then 13 mkdir /mnt/win_d 14 fi 15 16 if [ ! -d "/mnt/win_e" ] 17 then 18 mkdir /mnt/win_e 19 fi 20 21 if [ ! -d "/mnt/win_f" ] 22 then 23 mkdir /mnt/win_f 24 fi 25 26 if [ ! -d "/mnt/win_g" ] 27 then 28 mkdir /mnt/win_g 29 fi 30 31 if [ ! -d "/mnt/win_h" ] 32 then 33 mkdir /mnt/win_h 34 fi 35 36 echo "start mount win disk!!" 37 mount /dev/sda1 /mnt/win_c 38 mount /dev/sda5 /mnt/win_d 39 mount /dev/sda6 /mnt/win_e 40 mount /dev/sda7 /mnt/win_f 41 mount /dev/sda8 /mnt/win_g 42 mount /dev/sda9 /mnt/win_h 43 echo "mount over!Have fun" 44 } 45 46 myumount() 47 { 48 echo "start umounting win disk!!" 49 umount /mnt/win_c 50 umount /mnt/win_d 51 umount /mnt/win_e 52 umount /mnt/win_f 53 umount /mnt/win_g 54 umount /mnt/win_h 55 echo "all down bye!" 56 } 57 58 echo "mount or umount win disk?please type m/u" 59 read M_U 60 # echo $M_U 不再需要打印字符了 61 if [ "$M_U" = "m" ]; then 62 mymount 63 else 64 myumount 65 fi
shel l脚本需要注意的地方就是if这个条件这里[]和then要是在同一行那么就得加上;,还有就是 中间的判断要和中括号有空格,比如[ 判断条件 ],有一次我就是少了个空格,代码一直错,还找不到问题在什么地方。
下过如下:
1 huangjacky@huangjacky-laptop:~$ sudo sh ~/game/mountwin.sh 2 mount or umount win disk?please type m/u 3 m 4 check and create mount directory! 5 start mount win disk!! 6 mount over!Have fun