从Grml Live Linux安装Debian测试在GPT HDD(> 2TB)上
本教程将介绍如何使用Grml Live Linux系统的debootstrap来安装Debian测试。 对于其他Debian和Ubuntu版本,这应该有效 - 轻微的更改。 按照本指南,可以根据您的需要(OS版本,分区,RAID,LVM等)配置系统,而不是依赖于服务器提供商提供的几个预先配置的映像。
我不会保证这将为您工作!
1初步说明
本教程中使用的服务器有两个硬盘空间超过2TB的硬盘驱动器。 因为我们在这里使用GUID分区表(GPT),所以像fdisk和sfdisk这样的工具不适用于这种大型磁盘。 因此我们使用gdisk和sgdisk。 我想使用这个服务器的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 ~ #
因为我有两个相同的硬盘驱动器,我想使用软件RAID1加LVM(因为它的灵活性)。 因为LVM不能在引导分区上使用,所以我必须创建一个单独的/ boot
分区,我使用RAID1而不使用LVM。 除此之外, 我们需要一个小的BIOS启动分区 ,以便GRUB与我们的GUID分区表(GPT)一起使用; 1MB应该足够了,但是我在这里使用5MB。 BIOS引导分区是磁盘上的第一个还是最后一个分区,或之间的某个位置无关紧要。
为了做到这一点,我从/ dev / sda
中删除现有的分区,创建两个新的分区
(对于/ boot
和一个大的分区
,大约有512MB的小部分);你当然可以使用大分区的剩余空间,但是我倾向于留下一些空间,因为坏的扇区倾向于出现在旋转磁盘的外部区域 - 如果使用SSD,可以使用整个磁盘; 如果将BIOS启动分区放在该位置,请留出一些空间它! )用Linux raid autodetect
作为分区类型,第三个分区使用BIOS引导分区
作为分区类型:
gdisk /dev/sda
root @ grml〜#gdisk / dev / sda
GPT fdisk(gdisk)版本0.8.5
分区表扫描:
MBR:不存在
BSD:不存在
APM:不存在
GPT:不存在
创建新的GPT条目。
命令(?寻求帮助):
< - n
分区号(1-128,默认为1):
< - ENTER
第一个扇区(34-7814037134,默认= 2048)或{+ - }大小{KMGTP}:
< - ENTER
最后一个扇区(2048-7814037134,默认= 7814037134)或{+ - }大小{KMGTP}:
< - + 512M
当前类型是“Linux文件系统”
十六进制代码或GUID(L显示代码,Enter = 8300):
< - L
0700 Microsoft基础数据0c01 Microsoft保留2700 Windows RE
4200 Windows LDM数据4201 Windows LDM元数据7501 IBM GPFS
7f00 ChromeOS内核7f01 ChromeOS根7f02 ChromeOS保留
8200 Linux交换8300 Linux文件系统8301 Linux保留
8e00 Linux LVM a500 FreeBSD disklabel a501 FreeBSD启动
a502 FreeBSD交换a503 FreeBSD UFS a504 FreeBSD ZFS
a505 FreeBSD Vinum / RAID a580午夜BSD数据a581午夜BSD启动
a582午夜BSD交换a583午夜BSD UFS a584午夜BSD ZFS
a585午夜BSD Vinum a800苹果UFS a901 NetBSD互换
a902 NetBSD FFS a903 NetBSD LFS a904 NetBSD连接
a905 NetBSD加密a906 NetBSD RAID ab00苹果启动
af00苹果HFS / HFS + af01苹果RAID af02苹果RAID离线
af03苹果标签af04苹果电脑恢复af05苹果核心存储
be00 Solaris boot bf00 Solaris root bf01 Solaris / usr&Mac Z
bf02 Solaris交换bf03 Solaris备份bf04 Solaris / var
bf05 Solaris / home bf06 Solaris备用se bf07 Solaris保留1
bf08 Solaris保留2 bf09 Solaris保留3 bf0a Solaris保留4
bf0b Solaris保留5 c001 HP-UX数据c002 HP-UX服务
ef00 EFI系统ef01 MBR分区方案ef02 BIOS启动分区
fd00 Linux RAID
十六进制代码或GUID(L显示代码,Enter = 8300):
< - fd00
将分区类型更改为“Linux RAID”
命令(?寻求帮助):
< - n
分区号(2-128,默认为2):
< - ENTER
第一部门(34-7814037134,默认= 1050624)或{+ - }大小{KMGTP}:
< - ENTER
最后一个扇区(1050624-7814037134,默认= 7814037134)或{+ - }大小{KMGTP}:
< - 7813000000
当前类型是“Linux文件系统”
十六进制代码或GUID(L显示代码,Enter = 8300):
< - fd00
将分区类型更改为“Linux RAID”
命令(?寻求帮助):
< - n
分区号(3-128,默认3):
< - ENTER
第一个扇区(34-7814037134,默认= 7813001216)或{+ - }大小{KMGTP}:
< - ENTER
最后一个扇区(7813001216-7814037134,默认= 7814037134)或{+ - }大小{KMGTP}:
< - + 5M
当前类型是“Linux文件系统”
十六进制代码或GUID(L显示代码,Enter = 8300):
< - ef02
将分区类型更改为“BIOS启动分区”
命令(?寻求帮助):
< - w
最后检查完成。
关于写GPT数据。
这将超过现有
分区!!
你要继续吗?
(Y / N):
< - Y
好;
将新的GUID分区表(GPT)写入/ dev / sda。
操作成功完成。
root @ grml〜#
接下来我跑...
sgdisk -R=/dev/sdb /dev/sda
sgdisk -G /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 |