首页 > ARM, ARM Box, Linux, Raspberry Pi > 树莓派2上玩ArchLinux+LAMP(1):TF卡制作环境

树莓派2上玩ArchLinux+LAMP(1):TF卡制作环境

之前写过树莓派官网不再提供ArchLinuxARM的img下载,我们可以直接从ArchLinuxARM网站下载树莓派或者树莓派2的Root FS,相应的也就不想再需要在把img刷到TF卡以后在调整分区大小。那么我就来总结一下制作TF卡的过程。第一步需要先准备制卡环境。

img文件有其方便的一面,比如img文件有win32的制作程序,我们在现有的windows环境制作就好了。但是改为Root FS之后,就需要准备一个Linux环境来制作TF卡。

由于大多数人不一定有现成Linux环境,或者不想装双系统,或者现有Linux环境使用麻烦,所以我们这里介绍一个使用VirtualBox(下面一律简称为vbox)安装ArchLinux环境来制作。我之前就是有一个Ubuntu的vbox虚机,但是制作的时候不管是不是使用sudo,都会提示我权限不足,索性Ubuntu虚机删掉,安装一个全新的ArchLinux虚机。

我之前写过在D630上安装ArchLinux,其实做vbox的虚机,与之过程类似,但是由于制作TF卡的要求比较低,我们可以简化这个过程,然后加上必要工具安装的过程。下面就是安装过程:

(1)先下载Virtual Box的最新版本。地址:https://www.virtualbox.org/wiki/Downloads。只要不是太旧的版本就好,因为太旧的版本不支持挂载USB设备。当前版本是4.3.22。

(2)下载最新的ArchLinux的iso文件。当前版本是2015.2。这里推荐从http://mirrors.tuna.tsinghua.edu.cn/下载。这里是清华学生网管协会的镜像网站,不管是ArchLinux还是ArchLinuxARM都有镜像,速度还不错。

(3)在安装好Virtual Box以后,在里面创建一个ArchLinux虚机,32位的就好,内存建议1G以上,不过估计512MB就足够了。

(4)为虚机挂载之前下载的ArchLinux的iso之后启动,会进入到ArchLinux的LiveCD环境,先ping一下外网,看是不是网络已经通了。我们的这个环境创建,会直接从网络来完成安装。一般只要不是vbox虚机的网络配置有问题,应该是直接可以ping通的,ArchLinux已经默认支持虚机里面的虚拟网卡了。

(5)我们使用ls –l /dev/sd*命令,应该可以看到sda和sdb。sda是LiveCD的根系统,已经分区。sdb是虚机的硬盘,还没有分区。

(6)我们直接使用fdisk /dev/sdb格式化虚机的硬盘。先用n命令创建一个分区,默认使用分区id为1,使用默认起始扇区2048,结束位置使用+4G,在用t命令将这个分区类型改为83。这个分区是作为swap分区。

(7)接着我们在用n命令创建第二个分区,id默认为2,起始扇区和结束扇区都是默认,类型也不需要改变。这个分区是用作根存储。然后使用w命令保存分区信息。

(8)使用mkswap /dev/sdb1命令来格式化这个交换分区,然后使用swapon /dev/sdb1起用这个交换分区。

(9)使用mkfs.ext4 /dev/sdb2命令来格式化这个分区。然后用mount /dev/sdb2 /mnt将挂载到文件系统上。

(10)编辑LiveCD上的/etc/pacman.d/mirrorlist文件。这里面是pacman的镜像列表,我们只留下清华这个系统,或者163的镜像。vi编辑器怎么使用这里就不介绍了。

(11)在编辑完以后,使用pacstrap –i /mnt base来向刚才创建的分区灌入Root FS,按照屏幕提示操作就好。整个过程我这里大约花了不到10分钟,这个时间会根据带宽和选择的镜像不同,时间长短也不同。

(12)在上一步结束之后,使用genfstab –U –p /mnt >> /mnt/etc/fstab命令,来生成新系统上的fstab文件,这里面会包括之前我们创建的交换分区。

(13)接下来执行arch-chroot /mnt /bin/bash来启用新的shell环境,这个时候已经切换到我们之前做好Root FS的sdb2来作为我们的文件系统根。显示新的提示符之后,标示执行成功。

(14)之后编辑/etc/locale.gen文件,只留下en_US.UTF-8即可,然后执行locale-gen命令。

(15)执行echo LANG=en_US.UTF-8 > /etc/locale.conf来生成locale.conf。这一步和上一步,都是来生成系统使用的语言和编码。如果之后这个系统会被用来跑桌面系统,同时还使用中文环境,可以把zh_CN.UTF-8加上。

(16)执行 ln –s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime。这会为时区设置创建一个软连接到北京时间。

(17)执行hwclock –systohc -utc来将vbox虚机的bios时间改为格林威治时间。这个是ArchLinux建议的设置。由于我们已经设置了时区信息,所以系统显示时间还是会使用北京时区来显示的。

(18)执行echo myhostname >/ect/hostname来设置当前虚机的机器名。

(19)执行mkinitcpio –p linux来创建ramdisk环境。

(20)使用passwd来修改新系统的密码。

(21)使用pacman –S syslinux命令,安装syslinux。syslinux是新系统的bootloader。安装成功以后执行syslinux-install_update –i –a -m这会更新新系统硬盘分区启动扇区信息。

(22)修改/boot/syslinux/syslinux.cfg文件,这里面是syslinux加载内核文件的配置信息。我们的新系统,在自己启动以后,根文件系统的分区名字会变成sda2,所以把里面加载内核文件的路径位置的分区改为sda2。

(23)这个时候执行exit命令,回到之前的shell环境。执行成功后,提示符会变成原来的样子。

(24)执行umount –R /mnt,然后执行reboot。

(25)看到系统关闭的时候,在vbox的虚机菜单中,将之前挂载的iso去掉,使之从虚机自己的虚拟硬盘启动。

(26)重启后,使用root账号用之前修改的密码登录。

(27)可以ping一下外网看看网络是不是通的,如果没有通,执行ip link看看提示信息。如一般情况会有两个网卡,一个是lo,这个是换回软网卡,一个是enp0s3。或者是和enp0s3类似的名字。这个就是我们网卡的设备名字,使用dhcpcd enp0s3来启动这个网卡上面的dhcp client。如果想每次自动启用dhcpcd或者使用静态域名,请查询ArchLinux的Wiki。在提示信息过后,回到提示符以后,可以再试试ping一下。

(28)网络连通以后,使用pacman –S dosfstools命令,安装格式化dos分区的命令集。这是因为我们的树莓派和树莓派2的TF卡会有一个100M的fat分区。

到此,这个虚机环境已经可以为我们来制作树莓派和树莓派2上面的TF卡了。当然如果你要是玩其他跑ArchLinuxARM的板子的话,例如:Cubieboard1/2/3,也可以使用这个环境来制作TF卡。

分类: ARM, ARM Box, Linux, Raspberry Pi 标签:
  1. 牵起爱的手
    2017年3月20日15:42 | #1

    第5步ls –l /dev/sd*命令不能执行,no matches found

  1. 2015年3月2日21:35 | #1