迷彩 潜伏 隐蔽 伪装
分类: LINUX
2012-10-27 23:51:17
移动硬盘安装DEBIAN6并作为软件源的方法
niao5929
写在前面的话:本文首先要感谢那些不断写出硬盘安张DEBIAN的网友们,这篇文章的很多部分借鉴了他们的实验成果,同时我也感谢DEBIAN社区给了我们一个十分稳定并且能全镜像下载的发布方式,让我不用总是为了包的依赖问题大伤脑筋,该文章我将以GPLV3版权方式发布,希望有能力的朋友继续能加入新的内容,方便DEBIAN的软件安装。本人邮箱: 。欢迎LINUX的爱好者能分享自己的LINUX使用心得和更好的使用技巧。
Debian GNU/Linux 作为一款优秀的社区Linux操作系统,其稳定的特性尤其在整个Linux发行版本中突出。多年来,Debian GNU/Linux作为一个真正纯粹自由软件系统,一直受到了很多Linux爱好者的喜欢,同时在整个网络中也有很大数量的各种服务器正在使用Debian GNU/Linux 软件系统来向用户提供着各种应用服务。Debian GNU/Linux有很多、很棒的软件,并且这样软件易于安装。安装Debian软件一般都使用APT,这是一个功能强大的软件管理工具。使用它可以从光盘、FTP服务器、HTTP服务器或者本地机上安装Debian软件。本文将通过实例介绍使用移动硬盘为计算机安装Debian GNU/Linux系统,并使用该移动硬盘为系统创建本地安装源的方法和过程。
1、在移动硬盘中安装GRUB多重操作系统引导管理器:
在移动硬盘中创建EXT3文件分区, 因为本人经常需要使用Debian GNU/Linux的32位和64位安装镜像,因此使用了160G大小的移动硬盘。直接在LINUX系统中使用FDISK命令进行分区,并创建EXT3文件系统。之后重新加载移动硬盘,在Linux系统中使用fdisk -l命令查看分区:
root@localhost:~# fdisk -l
Disk /dev/sda: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007e13b
Device Boot Start End Blocks Id System
/dev/sda1 * 1 32 248832 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 32 4864 38818817 5 Extended
/dev/sda5 32 4864 38818816 8e Linux LVM
Disk /dev/dm-0: 38.1 GB, 38084280320 bytes
255 heads, 63 sectors/track, 4630 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/dm-0 doesn't contain a valid partition table
Disk /dev/dm-1: 1665 MB, 1665138688 bytes
255 heads, 63 sectors/track, 202 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/dm-1 doesn't contain a valid partition table
Disk /dev/sdb: 154.8 GB, 154750418432 bytes
255 heads, 63 sectors/track, 18814 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5aaf62a6
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 2550 20482843+ c W95 FAT32 (LBA)
/dev/sdb2 2551 18814 130640580 83 Linux
:~#
我们可以看到在分区中多了/dev/sdb1、/dev/sdb2两个分区,使用mount 命令将/dev/sdb1分区挂载到系统的/mnt目录来安装GRUB引导器,过程如下:
挂载/dev/sdb1到/mnt目录中:
root@host:~# mount /dev/sdb1 /mnt
查看挂载情况:
root@host:~# mount
返回结果中最后一行即为成功挂载
/dev/mapper/AkBirdofprey-root on / type ext4 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda1 on /boot type ext4 (rw)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
/dev/sdb1 on /mnt type ext3 (rw)
使用grub-install命令将GRUB引导器写入移动硬盘MBR区
root@AkBirdofprey:~# grub-install --root-directory=/mnt /dev/sdb
其中—root-directory=/mnt选项中的/mnt为分区挂载目录,不加该选项GRUB安装可能报错。
如果正常安装成功,系统将返回如下结果:
Installation finished. No error reported.
使用如下命令查看/mnt目录
root@host:~# cd /mnt
root@host:/mnt# ls
系统将返回包含grub文件夹的当前/mnt目录列表
boot grub lost+found
到此GRUB多重操作系统引导管理器安装完成。
2、将Debian GNU/Linux安装镜像ISO下载并复制到移动硬盘的第二分区中,并建立文件目录:
这步比较简单,硬盘安装Debian GNU/Linux,您需要找一个,在
/dists/stable/main/installer-CPU架构/current/images/hd-media/中找到initrd.gz和vmlinuz文件,下载它并保存到和光盘镜像相同的位置。图例中是我创建的安装文件目录及相关文件:
其中debian_amd64、debian_x86分别对应64位和32位的Debian GNU/Linux安装镜像、引导文件及系统安装完成后本地源的对应系统目录。下图为debian_x86目录中相关文件及目录:
3、使用移动硬盘引导系统进行Debian GNU/Linux安装:
通过BIOS设置,将引导设备选择为USB HDD或者USB CDROM模式。将移动硬盘连接到USB接口,之后重新启动机器,应该就会直接进入GRUB启动模式,并出现GRUB提示符,如下图:
在GRUB提示符下使用ls命令查看系统所有分区信息,系统返回如下图示:
其中(hd0)就是移动硬盘,(hd0,msdos2)、(hd0,msdos1)分别对应移动硬盘的第二和第一分区。
使用root (hd0,2)命令将当前分区指定为移动硬盘的第二分区(也就是保存有Debian GNU/Linux安装镜像的分区),命令成功系统会返回如下信息。
之后在GRUB提示符下依次执行如下命令:
linux /debian_x86/vmlinuz
initrd /debian_x86/initrd.gz
其中,/debian_x86为保存Debian GNU/Linux硬盘安装引导文件vmlinuz、initrd.gz和ISO安装镜像目录。完成后直接在GRUB引导器提示符下输入boot命令,系统将引导进入如图示中的Debian GNU/Linux安装界面:
关于Debian GNU/Linux的具体安装不再阐述,网上教程和帖子很多,请读者自行查阅。
4、本地软件源设置:
系统安装好后,我们可以重新加载移动硬盘,因为是一次需要加载10张DVD镜像作为全镜像本地源,那么我们需要修改系统中支持LOOP设备的数量(系统内核默认只能支持8个LOOP设备),在root用户权限下使用vi编辑器修改/etc/modules文件,添加loop max_loop=16这一行内容,保存退出,并重新启动主机,并使用ls /dev/loop*命令查看/dev/目录下loop设备名,系统返回如下图示内容:
使用mount命令查看移动硬盘挂载位置,系统返回如下图示内容:
我们看到移动硬盘的第二分区被系统自动加载到了/media/a1285f51-36b5-4857-9712-41cf73b3c533目录下。打开该文件夹中的debian_x86目录,并创建mountiso、umountiso两个文件,向mountiso文件中编辑一下内容:
#!/bin/bash
mount -o loop debian-6.0.5-i386-DVD-1.iso ./debian-iso1
mount -o loop debian-6.0.5-i386-DVD-2.iso ./debian-iso2
mount -o loop debian-6.0.5-i386-DVD-3.iso ./debian-iso3
mount -o loop debian-6.0.5-i386-DVD-4.iso ./debian-iso4
mount -o loop debian-6.0.5-i386-DVD-5.iso ./debian-iso5
mount -o loop debian-6.0.5-i386-DVD-6.iso ./debian-iso6
mount -o loop debian-6.0.5-i386-DVD-7.iso ./debian-iso7
mount -o loop debian-6.0.5-i386-DVD-8.iso ./debian-iso8
mount -o loop debian-update-6.0.5-i386-DVD-1.iso ./debian-update-iso9
mount -o loop debian-update-6.0.5-i386-DVD-2.iso ./debian-update-iso10
向umountiso文件中编辑一下内容:
#!/bin/bash
umount ./debian-iso1
umount ./debian-iso2
umount ./debian-iso3
umount ./debian-iso4
umount ./debian-iso5
umount ./debian-iso6
umount ./debian-iso7
umount ./debian-iso8
umount ./debian-update-iso9
umount ./debian-update-iso10
之后为mountiso、umountiso文件赋予可执行权限,执行mountiso脚本,并使用mount命令查看挂载情况,返回图示如下:
我们可以看到10张Debian GNU/Linux安装DVDiso已经按照对应的目录结构挂载到相应目录中。随后我们对APT软件源文件进行修改,该文件名为sources.list,位于/etc/apt目录下,一下是编辑完成后的该文件样本:
#
# deb cdrom:[Debian GNU/Linux 6.0.5 _Squeeze_ - Official i386 DVD Binary-1 20120512-13:45]/ squeeze contrib main
# deb cdrom:[Debian GNU/Linux 6.0.5 _Squeeze_ - Official i386 DVD Binary-1 20120512-13:45]/ squeeze contrib main
# Line commented out by installer because it failed to verify:
# deb http://security.debian.org/ squeeze/updates main contrib
# Line commented out by installer because it failed to verify:
# deb-src http://security.debian.org/ squeeze/updates main contrib
# squeeze-updates, previously known as 'volatile'
# A network mirror was not selected during install. The following entries
# are provided as examples, but you should amend them as appropriate
# for your mirror of choice.
#
# deb squeeze-updates main contrib
# deb squeeze contrib non-free main
# deb-src squeeze-updates main contrib
deb file:///media/a1285f51-36b5-4857-9712-41cf73b3c533/debian_x86/debian-iso1/ squeeze contrib main
deb file:///media/a1285f51-36b5-4857-9712-41cf73b3c533/debian_x86/debian-iso2/ squeeze contrib main
deb file:///media/a1285f51-36b5-4857-9712-41cf73b3c533/debian_x86/debian-iso3/ squeeze contrib main
deb file:///media/a1285f51-36b5-4857-9712-41cf73b3c533/debian_x86/debian-iso4/ squeeze contrib main
deb file:///media/a1285f51-36b5-4857-9712-41cf73b3c533/debian_x86/debian-iso5/ squeeze contrib main
deb file:///media/a1285f51-36b5-4857-9712-41cf73b3c533/debian_x86/debian-iso6/ squeeze contrib main
deb file:///media/a1285f51-36b5-4857-9712-41cf73b3c533/debian_x86/debian-iso7/ squeeze contrib main
deb file:///media/a1285f51-36b5-4857-9712-41cf73b3c533/debian_x86/debian-iso8/ squeeze main
deb file:///media/a1285f51-36b5-4857-9712-41cf73b3c533/debian_x86/debian-update-iso9/ squeeze contrib non-free main
deb file:///media/a1285f51-36b5-4857-9712-41cf73b3c533/debian_x86/debian-update-iso10/ squeeze contrib non-free main
至此,我们可以非常方便的使用图形界面中的新立得包管理器使用本地源进行 Debian GNU/Linux 的软件安装和删除,这种方式尤其适用于懒用户,同时又极大的节省了不必要的在线式组建安装浪费的网络带宽。下图是在新立得包管理器中查看软件源本地源的样子。
当我们不再需要进行软件安装时,我们就可以使用umountiso命令将LOOP设备卸载,同时可以去除移动硬盘。
后记:其实以上这种移动硬盘安装系统的方式不光适用于Debian系统的安装,也适合于RadHat、CentOS等系统的安装。这样,作为系统管理员只需要在必要时更新相关系统的安装ISO镜像就可以方便的使用移动硬盘,通过在具有USB引导模式的裸机系统中使用GRUB引导器完成Linux系统的安装,方便使用ISO文件作为本地源进行软件的快速安装和应用系统的快速部署,避免了没有网络或者网络带宽受限带来的在线软件安装困难和极差的用户体验。同时也便于更好的安装介质保存。避免了光盘本身因为划伤等原因造成的安装镜像损坏带来的系统安装困难。