使用debootstrap从Grml Live Linux安装Debian Wheezy(测试)
本教程介绍了如何在Grml Live Linux系统的debootstrap帮助下安装Debian Wheezy(测试)(如在Webtropia中用作救援系统)。 对于其他Debian和Ubuntu版本,这应该有效 - 轻微的更改。 按照本指南,可以根据您的需要(OS版本,分区,RAID,LVM等)配置系统,而不是依赖于服务器提供商提供的几个预先配置的映像。
我不会保证这将为您工作!
1初步说明
本教程中使用的服务器有两个硬盘驱动器。 我想使用这个服务器的RAID1和LVM软件。
在将系统引导到救援模式之前,您应该注意其网络设置,以便您可以为新系统使用相同的网络设置。 例如,如果您在系统上使用Debian或Ubuntu,请查看/ etc / network / interfaces
:
cat /etc/network/interfaces
它可以看起来如下:
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address <ip_address> netmask <netmask> broadcast <broadcast> gateway <gateway> iface eth0 inet6 static address <ipv6_address> netmask 64 up ip -6 route add <ipv6_gateway> dev eth0 down ip -6 route del <ipv6_gateway> dev eth0 up ip -6 route add default via <ipv6_gateway> dev eth0 down ip -6 route del default via <ipv6_gateway> dev eth0 |
2分区
现在开始进入Grml救援系统。
在救援系统中,我们检查软件RAID和LVM是否正在用于硬盘驱动器(如果是这样,我们需要在分配硬盘驱动器之前删除它们):
命令
lvdisplay
vgdisplay
pvdisplay
告诉您是否有用于LVM的逻辑卷,卷组和块设备。 如果是这样,您可以按照以下步骤删除它们(请确保使用正确的数据,如上述三个命令所示):
lvremove /dev/vg0/root
vgremove vg0
pvremove /dev/md1
我们检查软件RAID是否正在使用中:
cat /proc/mdstat
如果输出如下,则必须使用必须删除的RAID设备/ dev / md0
和/ dev / md1
:
root@grml ~ # cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [multipath]
md0 : active raid1 sda1[0] sdb1[1]
530048 blocks [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
104856192 blocks [2/2] [UU]
unused devices: <none>
root@grml ~ #
删除它们如下:
mdadm --stop /dev/md0
mdadm --stop /dev/md1
仔细检查是否没有RAID设备:
cat /proc/mdstat
root@grml ~ # cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [multipath]
unused devices: <none>
root@grml ~ #
我们来看看当前的分区:
fdisk -l
root@grml ~ # fdisk -l
Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x957081d4
Device Boot Start End Blocks Id System
/dev/sdb1 1 66 530112+ fd Linux raid autodetect
Partition 1 does not end on cylinder boundary.
Partition 1 does not start on physical sector boundary.
/dev/sdb2 66 13120 104856256 fd Linux raid autodetect
Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000cdcbd
Device Boot Start End Blocks Id System
/dev/sda1 1 66 530112+ fd Linux raid autodetect
Partition 1 does not end on cylinder boundary.
Partition 1 does not start on physical sector boundary.
/dev/sda2 66 13120 104856256 fd Linux raid autodetect
root@grml ~ #
因为我有两个相同的硬盘驱动器,我想使用软件RAID1加上LVM(因为它的灵活性)。 因为LVM不能在引导分区上使用,所以我必须创建一个单独的/ boot
分区,我使用RAID1而不使用LVM。
为了做到这一点,我从/ dev / sda
中删除现有的分区,创建两个新的分区
(对于/ boot
和一个大的分区
,大约有512MB的小部分);你当然可以使用大分区的剩余空间,但是我倾向于留下一些空间,因为坏的扇区倾向于出现在旋转磁盘的外部区域 - 如果使用SSD,则可以使用整个磁盘)与Linux raid autodetect
作为分区类型:
root @ grml〜#fdisk / dev / sda
该设备呈现小于的逻辑扇区大小
物理扇区大小。
与物理部门(或最佳)对齐
I / O)尺寸边界,否则性能可能受到影响。
警告:DOS兼容模式已弃用。
强烈建议
关闭模式(命令'c')并将显示单位更改为
扇区(命令'u')。
命令(m为帮助):
< - d
分区号(1-4):
< - 1
命令(m为帮助):
< - d
所选分区2
命令(m帮助):
< - n
命令行动
e扩展
p主分区(1-4)
< - p
分区号(1-4):
< - 1
第一个圆柱体(1-243201,默认为1):
< - ENTER
使用默认值1
最后一个圆柱体,+圆柱体或+大小{K,M,G}(1-243201,默认243201):
< - + 512M
命令(m为帮助):
< - t
所选分区1
十六进制代码(L型列表代码):
< - fd
更改系统类型的分区1到fd(Linux raid autodetect)
命令(m帮助):
< - n
命令行动
e扩展
p主分区(1-4)
< - p
分区号(1-4):
< - 2
第一个气缸(66-243201,默认为66):
< - ENTER
使用默认值66
最后一个圆柱体,+圆柱体或+大小{K,M,G}(66-243201,默认243201):
< - 240000(我倾向于在这里留下一些空间)
命令(m为帮助):
< - t
分区号(1-4):
< - 2
十六进制代码(L型列表代码):
< - fd
更改系统类型的分区2到fd(Linux raid autodetect)
命令(m为帮助):
< - w
分区表已被更改!
调用ioctl()重新读取分区表。
警告:如果您已经创建或修改了任何DOS 6.x
分区,请参阅fdisk手册页面了解更多信息
信息。
同步磁盘
root @ grml〜#
接下来我跑...
sfdisk -d /dev/sda | sfdisk --force /dev/sdb
...将分区方案从/ dev / sda
复制到/ dev / sdb
,以使它们在两个磁盘上都相同。
跑...
mdadm --zero-superblock /dev/sda1
mdadm --zero-superblock /dev/sda2
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
...从分区中删除先前RAID阵列中的任何余数。
现在我们从/ dev / sda1
和/ dev / sdb1
创建RAID阵列/ dev / md0
...
mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sda1 /dev/sdb1
...和/ dev / md1
从/ dev / sda2
和/ dev / sdb2
:
mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/sda2 /dev/sdb2
我们来看看:
cat /proc/mdstat
如您所见,我们有两个新的RAID1阵列:
root@grml ~ # cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [multipath]
md1 : active raid1 sdb2[1] sda2[0]
1927269760 blocks [2/2] [UU]
[>....................] resync = 0.0% (347136/1927269760) finish=185.0min speed=173568K/sec
md0 : active raid1 sdb1[1] sda1[0]
530048 blocks [2/2] [UU]
unused devices: <none>
root@grml ~ #
我们把一个ext4文件系统放在/ dev / md0上
:
mkfs.ext4 /dev/md0
为LVM准备/ dev / md1
:
pvcreate /dev/md1
创建卷组vg0
:
vgcreate vg0 /dev/md1
为/
大小为100GB创建一个逻辑卷:
lvcreate -n root -L 100G vg0
为大小为10GB的交换创建逻辑卷:
lvcreate -n swap -L 10G vg0
跑:
lvscan
如果所有逻辑卷显示为ACTIVE
,一切都很好:
root@grml ~ # lvscan
ACTIVE '/dev/vg0/root' [100,00 GiB] inherit
ACTIVE '/dev/vg0/swap' [10,00 GiB] inherit
root@grml ~ #
如果没有,运行...
vgchange -ay
...再和lvscan联系
。
接下来在/ dev / vg0 / root
和/ dev / vg0 / swap
上创建文件系统:
mkfs.ext4 /dev/vg0/root
mkswap /dev/vg0/swap
将根卷装载到/ mnt
,创建几个目录并将/ dev / md0
挂接到/ mnt / boot
:
mount /dev/vg0/root /mnt
cd /mnt
mkdir boot
mkdir proc
mkdir dev
mkdir sys
mkdir home
mount /dev/md0 boot/
为新系统创建一个fstab
:
mkdir etc
cd etc
vi fstab
proc /proc proc defaults 0 0 /dev/md0 /boot ext4 defaults 0 2 /dev/vg0/root / ext4 defaults 0 1 /dev/vg0/swap none swap defaults,pri=1 0 0 |