wiki译文:远程安装ArchLinux(Remote ArchLinux Install)

翻译:wd_afei
原文:wiki2.archlinux.org
提要:远程安装ArchLinux


+++++++++++++++++++++++++++++++++
远程安装ArchLinux
+++++++++++++++++++++++++++++++++

基于Tobias Kieslich的工作。他的原始版请看这里

http://www.justdreams.de/archlinux/docs/00_rootserver.html。

概述

这是一个建立Archlinux基本服务器的指南。Archlinux是一个很好的服务器系统,但是它通常不会被选择作为一个预装的发行版。在本机替换预装的系统非常容易。但是替换一个你只能通过SSH来操作的远程电脑可没那么容易,需要按照特定的顺序执行特定的步骤。请在操作之前确认你明白每一步会带来什么结果。如果不确定,请参考某些权威文档,例如man、Archlinux论坛或者Wiki。

我们将替换一个正在运行的远程系统。当你按照这个指南操作完毕,你将得到一个可以使用SSH登陆,通过参考其他地方的指南,建立Mail服务器或者Subversion或者Apache的Archlinux基本系统。

免责声明(Disclaimer):这是一项危险的操作,假定你已经知道你在做什么。这样做很有可能破坏你的系统或者丢失重要数据,你可能会花费一大笔钱让服务提供商来帮助你恢复。这些都要你自己负责。

(译者注:本文讲解的是通过网络来将远程计算机中的系统,例如RedHat之类替换为Arch。重点讲解的是通过在目前系统的swap分区上面建立一个中间系统(文中后面还叫做救援系统),然后用这个中间系统启动,把除swap分区之外的分区重新格式化安排一下,然后再在他们上面安装Arch。这样来实现最后的目的。)

简介

你需要事先安装好一个中间系统,启动并登陆这个系统,从那里来安装你的新的Archlinux服务器。这听起来似乎比实际情况要简单,因为你需要面对一个典型的情况:你需要干掉可以让你活动的主机(the system that hosts your activities)。As with many other things,有不止一种方法来完成这个操作。可能存在以下2个情况:

1 很多服务提供商提供被称作救援系统(rescue sytems)或者远程控制台(remote consoles)的系统,这些系统通常只是一个存放在网卡(network card)中的引导磁盘(bootdisc)。这些都是启动一个只存在于RAM中的基本系统(rudimentary sytem)。从而你可以随心所欲的对你的硬盘分区。
2 很多服务器都有swap分区。如果你的没有,你应该换一个提供商。你可以关闭那个swap分区,并且在那里安装你的中间系统。

本文以后面的这个情况为概要来讲解。如果你能控制远程控制台(译者注:因为你有这个的话,就相当于已经有了一个中间系统了,直接对硬盘操作即可),那么战斗就已经赢了一半。

备份和准备工作

在这个操作过程中,你将会清除你现在系统上面的所有数据。备份包括邮件、web服务器等在内的所有数据。把所有信息都放在手边。备份你所有的服务器配置文件、主机名等。

下面是一个你可能需要备份的数据的列表:
●你的IP地址。
●你的主机名(注意:rootserver通常也是提供商域名的一部分,在删除之前检查/保存你的/etc/hosts文件)。
●你的DNS设置(检查/etc/resolve.con)。
●你的SSH密钥(如果其他人也在你的服务器上面工作,他们需要接受新的密钥。这包括apache、邮件服务器、ssh服务器以及其他密钥。他们通常散布在你的系统中,至少都位于/etc目录(译者注:这里可能是讲license之类的东西。)。否则如果你有注册密钥,你还需要再为这些付费。你最好把他们都保存好了 ;-))。
●你的硬件信息(例如网卡。请查阅预装系统的/etc/modules.conf文件)。
●如果你的系统引导管理器已经在使用/boot/grub/menu.lst文件,请备份它。

总的来说,把原始的/etc目录在本地硬盘上做一个本地备份是个不错的注意。

准备中间系统

中间系统是用来实现新的磁盘规划并且安装最终系统的地方。不需要在它上面安装必须软件包之外的软件包。除了基本系统之外,你还需要安装wget来下载一些软件和ssl服务器。

创建一个新的swap文件

如果你是个妄想狂(paranoid),或者只有很小的RAM,那你在关闭swap分区之前或许需要添加一个swap文件。请注意你不需要运行一些类似于mail服务器、http服务器等的守护进程。你可以关闭他们释放远程机器的内存。

下列命令将首先创建一个填充满0的文件,然后格式化成swap分区格式,然后激活这个swap文件,强制将缓冲内容写入硬盘,然后检查激活的swap文件。

# dd if=/dev/zero of=/swapfile bs=1024 count=512288
# mkswap /swapfile
# swapon /swapfile
# sync
# cat /proc/swaps

设置旧swap分区为新的root分区

你似乎只有一块硬盘(否则你可以在你的另外一块硬盘上面创建你的中间系统)。使用cfdisk、检查/proc/swaps或者/etc/fstab找到你的swap分区。

假定你的硬盘上的swap分区位于hdaX(X是个数字),下列命令先关闭swap分区,并把它格式化,然后新建一个用来挂载它的文件夹,最后把它挂载到新建的文件夹,用来安装中间系统。

# swapoff /dev/hdaX
# mke2fs -j /dev/hdaX
# mkdir /mnt/newsys
# mount -t ext3 /dev/hdaX /mnt/newsys

安装中间系统

David Leinh?user (aka Calavera)写了一个bootstrap脚本,可以用来创建中间系统和最终系统。它让操作变的很简单。
可以来这里获取:http://bbs.archlinux.org/viewtopic.php?t=4020。

从本地机器复制这个文件到远程机器:

$ scp archbootstrap [email protected]:/home

在远程机器上面运行这个脚本(在运行archbootstrap之前请确认远程电脑已经安装了wget):

# ./archbootstrap /mnt/newsys ftp://gd.tuwien.ac.at/opsys/linux/archlinux

当然,你也可一选择其他镜像。

配置中间系统

当archbootstrap命令结束后,你将拥有一个原始系统(raw system),还需要你按照通常的Archlinux安装过程来提供更多的信息。这就是你从之前系统保存的所有信息。

在chroot到新系统之前,先调整以下文件中的设置:
●/mnt/newsys/etc/fstab
●/mnt/newsys/etc/resolv.conf
●/mnt/newsys/etc/hosts
●/mnt/newsys/etc/hosts.allow
●/mnt/newsys/etc/rc.conf
●/mnt/newsys/etc/modprobe.conf

特别的:
●添加新的root分区(以前的swap分区)到/mnt/newsys/etc/fstab文件:

/dev/discs/disc0/partX / ext3 defaults 0 1

●添加DNS到/mnt/newsys/etc/resolv.conf文件:

nameserver xxx.xxx.xxx.xxx

●添加远程机器的主机名到/mnt/newsys/etc/hosts

rooditoottoot yyy.yyy.yyy.yyy

●允许ssh客户端登陆,添加sshd到/mnt/newsys/etc/hosts.allow文件:

sshd:ALL

●编辑/mnt/newsys/etc/rc.conf脚本,确认你已经添加了sshd到DAEMONS序列中。

警告:如果你不允许你的ssh守护进程自动启动,你将不能获取远程登陆系统的权限。如果你不在/etc/hosts.allow文件中允许ssh客户端登陆,你也将得到相同的结果,虽然他们技术原理不同。

●添加网卡到/mnt/newsys/etc/modprobe.conf

alias eth0 <your module>

●从/etc/ssh复制ssl密钥到/mnt/newsys/etc/ssh

重启之前需要检查的内容

你必须chroot到你的新系统以便做一些设置。当你在新系统的时候,必须先为root用户设置一个密码,否则ssh不会让你登陆系统。还有你的系统引导程序应该定向到新系统。你或许还可以设置你的系统引导程序以便你可以进入旧系统。如果你有一个救援控制台的话,这些操作将会很简单。

●挂载基本系统(essential systems)

# mount -t devfs none /mnt/newsys/dev
# mount -t proc none /mnt/newsys/proc

●chroot到你的新系统

# chroot /mnt/newsys /bin/bash

●确认你的网络没有问题,`ifconfig`命令显示类似如下的结果:

root@tester root]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:E0:81:24:77:5E
                              inet addr:192.168.0.7  Bcast:192.168.0.255  Mask:255.255.255.0
                              inet6 addr: fe80::2e0:81ff:fe24:775e/64 Scope:Link
                              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                              RX packets:5259 errors:0 dropped:0 overruns:1 frame:0
                              TX packets:3266 errors:0 dropped:0 overruns:0 carrier:0
                              collisions:0 txqueuelen:1000
                              RX bytes:6076799 (5.7 Mb)  TX bytes:332020 (324.2 Kb)
                              Interrupt:209 Base address:0x2000

lo        Link encap:Local Loopback
                              inet addr:127.0.0.1  Mask:255.0.0.0
                              inet6 addr: ::1/128 Scope:Host
                              UP LOOPBACK RUNNING  MTU:16436  Metric:1
                              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                              collisions:0 txqueuelen:0
                              RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)</kbd>
                             

●现在你应该用pacman来管理你的系统。你需要一个内核和一个ssh服务以便可以启动到救援系统。如果你不喜欢vi,当你安装这些的时候也考虑一下用什么编辑器(nana,joe)。

# pacman -Sy kernel26 openssh

●现在你应该安装和设置引导管理器了。我强烈推荐使用grub,这样在生机内核或者产品的时候不用记得去运行lilo了。编辑/boot/grub/menu.lst文件(注意:grub是从0开始记数的,而不是1)。

# (0) Arch Linux insert your old swap partition as new root
title Arch Linux [/boot/vmlinuz26]
root (hd0,1)
kernel /boot/vmlinuz26  
root=/dev/discs/disc0/part2 ro

●在安装grub之前请注意,如果你没有在新的grub配置文件中,并且没有编辑fstab文件关闭swap分区,这将摧毁你的旧系统。

# install-grub /dev/discs/disc0/disc /dev/discs/disc0/part2

●设置root密码(否则SSH将不会让你登陆)

# passwd

●退出chroot环境

#exit

注意:在继续之前请仔细检查:
1 为新系统设置了引导管理器。
2 在rc.conf设置了sshd的启动。
3 在/etc/hosts.allow文件中设置了允许其他电脑登陆。
4 设置root密码。
为了得到一个可以工作的系统,所有这些都是必须的。

如果你确定你的新系统可以启动,输入reboot命令。

为你的新系统准备一个home目录

给服务器一点时间等待它重启,之后可以ping一下它确定你能访问它。

通过SSH登录你的新系统。如果你忘记复制你的ssh密钥,那么输出会告诉你为什么。按照提示完成操作。请确认你知道你现在在哪里——在你之前系统的swap分区里面。在你私人的救援系统里面,你被你的旧系统的分区包围着。如果你 freaky enough to choose option #1 you are on your own for this part。使用parted并不是世界上最难的挑战。

1 你需要移动旧的数据到新的系统中。使用parted来创建一个救援分区,并且复制所有数据到那里面。
2 你已经在网络上某个地方备份了你的数据(好孩子!),那你可以在没有任何风险的情况下运行cfdisk规划你的新磁盘。

让我们先考虑一个比较好的规划。你现在在一个救援系统里面。非常有用,不是吗?当你的服务器被黑客攻击或者你必须在实际系统中工作,让我们在你的硬盘上拥有一个救援系统。如果你需要设置你的服务器并且需要打断你的工作的时候,这也会非常有用。怎么做呢,让你的服务器不设置防火墙和MySQL服务器的root密码?坏注意!重启到你的救援系统,只需等待重新ssh登陆继续你的工作。你也可以添加你工作所有需要的工具到这个系统,通过提供商提供的救援控制台(如果你有一个),你不会在这个迷你系统中受限制。现在,你当前所在的swap分区,通常位于你磁盘规划最先考虑的。不要浪费救援系统上面硬盘最快的部分。放置你的救援系统在你的磁盘规划的最后(或许是512-1024MB)。

现在整个磁盘规划的想法(它仍然依赖于之前的规划和你现在工作的分区的位置)。有些人或许需要使用Confixx或者Vistas来维持他们的域名和E-mail帐号。这需要一个不通的规划,但是这不在本文讨论的范围之内。我们建议使用以下规划:

●part1 swap分区 512MB
●part2 / 2048MB
●part3 /home 依赖于磁盘的大小
●part4 -- extended --
●part5 /backup 通常和/home分区的大小一样
●part6 / 救援系统1024MB

现在,实现你的规划。做如下操作的时候,不要忘记彻底离开你当前工作的分区。

# parted /dev/discs/disc0/disc

或者

# cfdisk /dev/discs/disc0/disc

按照设想创建文件系统,并且挂载新的root分区到/mnt/newsys

# mkdir /mnt/newsys
# mount -t ext3 /dev/discs/disc0/part3 /mnt/newsys

设置你的新系统

我们需要再次使用archbootstrap,这需要用到wget

# pacman -S wget

挂载旧分区从旧的home目录复制archbootstap过来,或者再次通过scp来复制。或者你也可以从光盘或者软盘镜像释放出来原始的Arch安装脚本。我假定你再次使用了archbootstrap,并且在/mnt/newsys安装了基本系统。

你可以再次手动编辑/etc下面的文件,或者把它们复制过来。

# cat /etc/fstab > /mnt/newsys/etc/fstab
# cat /etc/pacman.conf > /mnt/etc/pacman.conf
# cat /etc/hosts > /mnt/etc/hosts
# cat /etc/hosts.allow > /mnt/etc/hosts.allow
# cat /etc/rc.conf > /mnt/etc/rc.conf
# cat /etc/modprobe.conf > /mnt/etc/modprobe.conf
# cat /etc/resolv.conf > /mnt/etc/resolv.conf

完成后请设置你的/mnt/newsys/etc/fstab(编辑它以使它适合新系统):

#
# /etc/fstab: static file system information
#
# <file system>        <dir>         <type>    <options>         <dump> <pass>
none                   /proc         proc      defaults            0      0
none                   /dev/pts      devpts    defaults            0      0
none                   /dev/shm      tmpfs     defaults            0      0
tmpfs                  /tmp          tmpfs     defaults            0      0
#sysfs                  /sys          sysfs     defaults            0      0
usbdevfs               /proc/bus/usb usbdevfs  defaults            0      0

/dev/cdroms/cdrom0     /mnt/cd      iso9660   ro,user,noauto,unhide   0      0
/dev/cdroms/cdrom0     /mnt/dvd     udf       ro,user,noauto,unhide   0      0
/dev/floppy/0          /mnt/fl      vfat      user,noauto,unhide      0      0

# the production system
/dev/discs/disc0/part1 swap         swap      defaults                0      0
/dev/discs/disc0/part2 /            ext3      defaults                0      1
/dev/discs/disc0/part3 /home        ext3      defaults                0      1

# the backup system
/dev/discs/disc0/part5 /mnt/backup  ext3      defaults,noauto         0      1

# the rescue system if necessary
/dev/discs/disc0/part6 /mnt/rescue  ext3      defaults,noauto         0      1

不要忘记为备份创建一个目录:

# mkdir /mnt/backup

不要忘记再次复制你的ssl密钥过来。挂载devfs和proc:

# mount -t devfs none /mnt/newsys/dev
# mount -t proc none /mnt/newsys/proc

chroot到即将是成品的系统,设置root密码,安装需要的软件:

# chroot /mnt/newsys /bin/bash
# passwd
# pacman -Sy kernel26 openssh mc wget nano

调整/mnt/newsys/boot/grub/menu.lst文件,设置新系统为默认。

install-grub /dev/discs/disc0/disc /dev/discs/disc0/part2

仔细检查你已经完成了所有必须的步骤(就像设置救援系统一样),退出chroot,重启电脑。

尾注

现在你已经在你的服务器上面运行Archlinux了。为了让他能有实际用途还有许多事情需要做。但是那是另外一个故事,另外一个指南了。你想写么?请把他在wiki上面发表。不要忘记在你的救援系统中安装一些好用的工具,例如nmap、parted等。

评论

评论查看选项

选择您喜欢的显示评论的模式,并点击"保存设置"来激活您所做的改变。
Vanny 提交者: Alvinia
uggaustraliaWhat a miracle 提交者: uggaustralia
CHI Straightener 提交者: dfvfbvgfbf
uggaustraliaWe provide the 提交者: uggaustralia
uggaustraliaThe ugg boots 提交者: uggaustralia
duvetica online 提交者: ysshoes
duvetica sale 提交者: ysshoes
parajumpers outlet 提交者: ysshoes
parajumpers 2012 提交者: ysshoes
Cheap Christian Louboutin 提交者: kei111
50 cent headphones 提交者: awrfdasdfsdf
arcteryx atom 提交者: hgfg
Moving coilCustom Beats By 提交者: ning123
christian louboutin sale 提交者: ysshoes
cheap louboutin 提交者: ysshoes
cheap louboutins 提交者: ysshoes
moncler boots 提交者: ysshoes
parajumpers clothing 提交者: ysshoes
parajumpers alaska 提交者: ysshoes
louboutin sneakers 提交者: ysshoes
UGG's happen to have been 提交者: Becky12393
That's a 提交者: macblush
http://www.newnhljerseyssupply.com/ 提交者: nhlhomejerseys
Welcome to Kobe Bryant 2012 提交者: guccis
Borse Gucci 2013, un marchio 提交者: guccis
Borse Gucci 2012 un nome ben 提交者: guccis
Dear Friend,Merry 提交者: cn123
cheap beats by dre 提交者: mivfs45
cheap beats by dre 提交者: mivfs45
Abercrombie Singapore Best 提交者: ning123
Cheap Packers Jerseys 提交者: guyidn72
Watch,Sale armani watches or 提交者: cn123
Wholesale Jerseys 提交者: zhushaobin1995
Authentic Reebok NFL Jerseys 提交者: cheapsoccer
yspxlp 提交者: gvepky
wkvhbkj 提交者: gvepky
Borse Gucci 2013, un marchio 提交者: guccis
Welcome to Kobe Bryant 2012 提交者: guccis
cbeocko 提交者: zlxtgh
brnvfdw 提交者: gvepky
gzotohh 提交者: gvepky
Moncler Jacket 提交者: prada
hzgosmoo 提交者: zlxtgh
Discount louboutins 提交者: prada
Buying products pertaining 提交者: prada
christian louboutin shoes. 提交者: prada
Cheap Timberland Boots 提交者: prada
tnifgbpr 提交者: gvepky
wicccsf 提交者: gvepky
wjcvju 提交者: gvepky