最近无心间发现一个基于ArchLinux的发行版——BlackArch,主题十分炫酷(中二)。固然渗透类的Linux
发行版已经有BackTrack和Kali了,不过都是源于Debian的,使用者众多,随波逐流没法突显咱们的逼格,
要论小众,ArchLinux算是个中翘楚。呵呵开个玩笑,其实ArchLinux的亮点在于“小”,不一样于其余发行版的“最小化安装”,
ArchLinux的安装过程就不同凡响,手动分区,手动配置bootloader,而后从网络源下载必要的包安装到指定的分区中。
安装完必备的软件(如gcc)后其他一律本身去添加,包括图形界面。对于喜欢定制而又不怕折腾的朋友来讲,Arch系列确实
是一个不错的选择。正好我尚未用过Arch系的发行版,所以就在虚拟机装一个体验一回,顺便把其中遇到的坑记录一下。php
关于ArchLinux的安装,已经有无数文章介绍过了,不过质量参差不齐,每一个人遇到的问题也不尽相同,所以强烈建议先看一遍
官网的Beginner-guide。总的来讲,操做系统的安装过程不算复杂,问题主要出如今分区和bootloader的配置上,
能解决就好办多了。html
在官网的Download界面里就有最新的iso镜像源能够下载,包括磁力连接和bt种子,下载好后烧录到光盘或者u盘,就能够做为一个操做
系统直接启动了。和通常的系统安装不一样,启动后以root用户进入一个传统的linux命令行,内含/root /boot /home /etc /mnt等常见
目录,这时能够看到有不少软件能用,好比ifconfig,由于此时软件都是在镜像上面的。咱们所须要作的,就是经过这个命令行来把咱们
的操做系统安装到预留的磁盘空间内。linux
磁盘分区是安装系统的第一步,也是最重要的一步,分区的好坏决定了之后使用磁盘的效率,甚至会影响系统的正常启动。关于磁盘分区能够
先阅读一下Arch Wiki的相关部份内容。首先,咱们能够用lsblk
命令查看分区和挂载点,在没分区时应该只能看到空闲的/dev/sdx。
分区信息主要存储在分区表中,目前有两种主流的模式,即MBR(Master Boot Record)和GPT(GUID Partition Table),鸟哥的私房菜里讲的就是
传统的MBR分区,但其限制较多,好比只支持4个分区(后来加入拓展分区和逻辑分区),而GPT是较新的一种分区模式,解决了前者许多限制,所以这里
就采用GPT来进行分区。分区的工具备不少,好比parted
、fdisk
、gdisk
、cfdisk
等,这里以gdisk(GPT版的fdisk)为例,假设空闲磁盘为sda:ios
gdisk /dev/sda
进入交互的命令行模式,显示效果以下:网络
Command (? for help):
此时按‘n’回车能够添加分区,依次交互选择分区号,起始扇区,终止扇区和“hex code”。如第一个分区(boot)选择分区号为默认(1),起始扇区选默认,
终止扇区设置为“+250M”(不要引号)。hex code表示文件系统类型,默认为8300(Linux File System),通常选默认就能够了。不过要注意的是若是有交换分区,
要把hex code设置为8200。都完成后能够在交互模式输入p回车查看分区详细信息,若是没问题,就输入w回车写入分区。退出后能够经过命令查看详细分区:tcp
fdisk -l
值得一提的是boot分区格式要设置为EFI System,能够在hex code里指定也能够在parted交互命令行中设置:ide
parted /dev/sda (parted) set 1 boot on
假设咱们已经将/dev/sda分区为四部分sda1~sda4,分别对应boot,swap,/目录,home,首先格式化通常的存储目录:工具
mkfs -t ext4 /dev/sda1 mkfs -t ext4 /dev/sda3 mkfs -t ext4 /dev/sda4
对于交换分区咱们要用mkswap命令设置格式:字体
mkswap /dev/sda2
设置好文件格式后须要把咱们的分区(临时)挂载到文件系统上:ui
mount /dev/sda3 /mnt mount /dev/sda1 /mnt/boot mount /dev/sda4 /mnt/home swapon /dev/sda2
这里用到Arch系列的经常使用命令pacstrap从网络安装基础包和基础开发包:
pacstrap /mnt base base-devel
通过大概半小时就能够安装好全部基础的文件,此时Arch Linux已经算是安装好了,可是若是直接重启是进不了系统的,由于硬件启动时候尚未挂载分区。
所以咱们先生成操做系统当前的分区信息文件:
genfstab -p /mnt >> /mnt/etc/fstab
这个文件的做用是在之后启动时自动挂载你的磁盘分区,同时也会检测前面设置的交换分区(若是有的话)。
在电脑刚刚启动的时候,并不知道该如何进入操做系统,所以须要一个引导,bootloader起的就是引导做用。最多见的bootloader就是grub和syslinux,
若是使用GRUB legacy做为bootloader,必须使用MBR,所以咱们选择syslinux。
首先咱们如今分区里安装syslinux:
pacstrap /mnt syslinux
关于syslinux的配置过程能够参考官网的wikiSyslinux,安装可分为自动安装和手动安装,推荐自动安装:
syslinux-install_update -i -a -c /mnt
安装完成后用arch-chroot命令进入咱们的新系统设置语言,时区等其余配置:
arch-chroot /mnt
修改/etc/locale.gen
文件选择语言,建议不要选中文否则会出现命令行乱码。
locale-gen echo LANG="en_US.UTF-8" > /etc/locale.conf ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改syslinux的配置信息,在文件/boot/syslinux/syslinux.cfg
中能够进行自定义的配置。这里注意的是在Comboot modules
中能够看到有启动时须要的模块XXX.c32,咱们须要把对应的/usr/lib/syslinux/bios/XXX.c32
复制到/boot/syslinux/
目录下。
而后运行:
extlinux --install /boot/syslinux
此时bootloader已经安装好了,对于PC来讲,还须要一个启动协议,即启动系统的指令,对GPT而言就须要适合GPT分区的启动协议,这里是gptmbr.bin:
dd conv=notrunc bs=440 count=1 if=/usr/lib/syslinux/bios/gptmbr.bin of=/dev/sda
最后初始化磁盘环境, “Make an initial ramdisk environment (mkinitcpio) using presets (-p) suitable for Linux” :
mkinitcpio -p linux
而后退出chroot,取消挂载再重启就能够了,重启以后记得拔出安装光盘(u盘):
umount -R /mnt swapoff /dev/sda2
更详细的安装图文过程能够参考ArchWiki或者国外一些博客如Braun's guide。
这里先简单介绍下ArchLinux的包管理工具pacman,相似与debian系列的apt和redhat系列的rpm,
方便咱们搜索,安装,升级和卸载软件。源的配置文件在/etc/pacman.conf
,镜像列表在/etc/pacman.d/mirrorlist
,能够根据速度选择一个合适的源。
在安装软件前咱们须要先和软件源进行一次同步,至关于apt-get update:
pacman -Syy
同步以后能够选择批量更新,相似与apt-get upgrade:
pacman -Syu
在源里搜索并安装单个软件包,会自动安装其依赖:
pacman -S package
安装从其余地方下载到本地的软件包:
pacman -U /path/to/package/package_name.pkg.tgz
安装某个软件前能够先在源里搜索一有没有,相似apt-cache search xxx:
pacman -Ss package
相似的在本地搜索软件包:
pacman -Qs package
删除某个软件包,以及只有其用到的依赖包,若是要保留依赖能够只指定-R:
pacman -Rs package
更详细的命令能够查看pacman的manpage。
显卡驱动
Xorg默认安装的时候已经安装了部分开源的图形驱动,通常来讲已经够用,咱们也能够安装本身显卡对应的闭源驱动,好比能够去其
显卡官网或者笔记本电脑官网下载Linux版本的最新驱动,或者从镜像源下载不那么新的稳定版:
pacman -S mesa xf86-video-intel #A卡 pacman -S nvidia nvidia-utils #N卡
声卡驱动
声卡驱动有oss和alsa,通常选择后者,装好后能够用alsamixer
命令调节音量:
pacman -S alsa-utils
其余
除了声卡和显卡的驱动,咱们通常还须要无线网卡的驱动,能够在笔记本官网下载。值得一提的是,若是笔记本没有
有线网络的话,这个最好在安装以前就先准备好无线网卡的驱动,以方便随后用pacman安装其余软件。
上述步骤完成后咱们就能重启进入ArchLinux的命令行了,默认是tty1,没有桌面环境,而此时也好不能上网,须要手动配置。
首先在/etc/rc.conf
文件的NETWORKING段配置ip(你的IP)/netmask(子网掩码)/broadcast(广播地址)/ROUTES(路由),
若是为动态,将/etc/rc.conf文件的eth0改成dhcp形式。注意对于新版本的ArchLinux,启动程序的管理已经从initscript
变成systemd,统一用systemctl命令管理而不用/etc/rc.conf管理。
若是只有无线网络,咱们能够用iwconfig命令链接上路由器:
iwconfig wlan0 essid AP_NAME key KEY_NAME
其中essid后面是Wifi的名字,key后面是Wifi密码。此时应该就能够访问互联网了。值得一提的是若是为虚拟机,默认网络就
已经链接好了,咱们只须要经过sudo dhcpcd
命令打开便可。
利用pacman命令咱们就能够安装须要的软件了,对通常PC而言先装一个图形界面是挺有必要的,首先安装Xorg。
pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils
Xorg是X11的其中一个实现,而X11(X Window System)是一个C/S结构的程序,Xorg只是提供了一个X Server,
负责底层的操做,当你运行一个程序的时候,这个程序会链接到X server上,由X server接收键盘鼠标输入和负责屏幕输出窗口的移动,
窗口标题的样式等等,都是由一种叫作窗口管理器的程序来完成的,安装好后startx,以下图所示,其中包涵了Xorg,4个窗口及对应的程序,
和Xorg自带的窗口管理器twm:
能够看到这些窗口已经有了图形界面的雏形,若是为了更好的显示效果能够本身去安装其余窗口管理器如Gnome,KDE,xfce等。
下面三个命令分别安装xfce窗口管理器,字体以及输入法:
sudo pacman -S xfce4 sudo pacman -S ttf-arphic-uming ttf-arphic-ukai ttf-bitstream-vera sudo pacman -S ibus ibus-pinyin
安装好后reboot,而后进入tty,用startxfce4
就能够进入窗口管理器了:
能够看到画面十分简洁清秀~嘿嘿。
至此ArchLinux的安装和配置就完成了,虽然步骤比较多,但因为其Wiki很是详细且全面,所以90%的问题都能找到解决方法。 前期安装bootloader的时候也有好几回由于配置不全/不正确致使开机黑屏没法进入引导几近抓狂,但俗话说得好,失败是免费的, 从失败中学到正确的方法,对本身也没什坏处。另外经过玩一遍ArchLinux,又对系统的分区和启动过程了解很多,真算得上是"获益匪潜"了。