玩转树莓派:安装操作系统

          第一节 准备工作

        玩转树莓派我们首先需要做一些准备工作,我们需要准备一块树莓派3+B、一张不小于8GB的sdcard和一个sd卡读卡器:

玩转树莓派:安装操作系统_第1张图片

树莓派3+B

玩转树莓派:安装操作系统_第2张图片

sdcard

玩转树莓派:安装操作系统_第3张图片

sd卡读卡器

        树莓派在通电后会读取sdcard中事先被烧录好的操作系统,载入并运行此操作系统,所以我们还需要到树莓派的官方网站上下载树莓派的专用操作系统:

        树莓派官方网站:https://www.raspberrypi.org/

        树莓派系统下载:https://www.raspberrypi.org/downloads/

        这里我们采用的操作系统是Raspbian发行版,下载地址为:http://director.downloads.raspberrypi.org/raspbian/images/raspbian-2017-04-10/2017-04-10-raspbian-jessie.zip

        我们采用的工作环境是Linux的一个发行版——Fedora25,后续章节中均在此工作环境中演示。


          第二节 sd卡分区
 
 

        将sdcard插在读卡器中并插入工作电脑中,执行:

[lidq@localhost ~] ls /dev
sda
sda1
sda2
sda3
sda4
sdb
sdb1
sdb2

        其中sdX表示你电脑上的大容量存储设备:sda表示第一个存储设备(硬盘);sdb表示第二块存储设备(sdcard)。

        其中sdXN中的N表示这个存储设备的分区号:sda1表示第一个存储设备的第一个分区;sda2表示第一个存储设备的第二个分区;sda3表示第一个存储设备的第三个分区;sdb1表示第二个存储设备的第一个分区;sdb2表示第二个存储设备的第二个分区。

        我们需要确定sdcard这个设备的设备名称是哪一个(在这里是sdb也有可能是sdc或sdd等),然后对这个sdcard进行分区,我们需要对其划分3个区:

        sdb1:启动分区

        sdb2:交换分区

        sdb3:系统根分区

 

[lidq@localhost ~] sudo fdisk /dev/sdb

        在fdisk命令中可以使用m显示帮助提示。

        首先输入p显示目前此存储设备现有的分区:

Command (m for help): p
Device     Boot   Start      End Sectors Size Id Type
/dev/sdb1          2048  8390655 8388608   4G 83 Linux
/dev/sdb2       8390656 16777215 8386560   4G 83 Linux

        可以看到这个sdcar上本来具有两个分区,我们需要输入d命令,并按提示将这两个分区全部删除:

Command (m for help): d
Partition number (1,2, default 2): 
Partition 2 has been deleted.
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

        然后创建sdb1、sdb2、sdb3三个分区,执行n命令创建一个新分区设定其大小为512MB:

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-16777215, default 2048): 2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-16777215, default 16777215): +512M
Created a new partition 1 of type 'Linux' and of size 512 MiB.

        再次执行n命令创建一个新分区设定其大小为2GB:

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (1050624-16777215, default 1050624): 
Last sector, +sectors or +size{K,M,G,T,P} (1050624-16777215, default 16777215): +2G
Created a new partition 2 of type 'Linux' and of size 2 GiB.

        再次执行n命令创建一个新分区,将sdcard中剩余大小全部分配给此分区:

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): 
Using default response p.
Partition number (3,4, default 3): 
First sector (5244928-16777215, default 5244928): 
Last sector, +sectors or +size{K,M,G,T,P} (5244928-16777215, default 16777215): 
Created a new partition 3 of type 'Linux' and of size 5.5 GiB.

        接下来执行p命令,查看我们已经创建好的新分区:

Command (m for help): p
Device     Boot   Start      End  Sectors  Size Id Type
/dev/sdb1          2048  1050623  1048576  512M 83 Linux
/dev/sdb2       1050624  5244927  4194304    2G 83 Linux
/dev/sdb3       5244928 16777215 11532288  5.5G 83 Linux

        执行t命令将sdb1分区的类型修改为b (WIN95 FAT32):

Command (m for help): t
Partition number (1-3, default 3): 1
Partition type (type L to list all types): b
Changed type of partition 'Linux' to 'W95 FAT32'.

        执行t命令将sdb2分区的类型修改为82 (Linux swap / Solaris):

Command (m for help): t
Partition number (1-3, default 3): 2
Partition type (type L to list all types): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'.

        执行t命令将sdb3分区的类型修改为83 (Linux),由于我们的sdb3分区类型已经是Linux了所以无需再做额外修改。

        执行a命令将sdb1分区的boot选项设置为* :

Command (m for help): a
Partition number (1-3, default 3): 1
The bootable flag on partition 1 is enabled now.

        再次使用p命令查看分区信息:

Command (m for help): p
Device     Boot   Start      End  Sectors  Size Id Type
/dev/sdb1  *       2048  1050623  1048576  512M  b W95 FAT32
/dev/sdb2       1050624  5244927  4194304    2G 82 Linux swap / Solaris
/dev/sdb3       5244928 16777215 11532288  5.5G 83 Linux

        可以看到我们的sdcard已经被修改为3个分区分别是sdb1、sdb2、sdb3,其中sdb1是启动分区;sdb2是交换分区、sdb3是系统根分区。

        最后执行w命令写入所有执行结果,即确定对存储设备做分区修改,执行成功后自动退出fdisk命令并返回命令行界面:

Command (m for help): w
The partition table has been altered.
Syncing disks.
[lidq@localhost ~]

 

        接下我们还需使用mkfs.vfat和mkfs.ext4两个命令对sdb1和sdb3两个分区进行格式化操作(sdb2是swap分区不需要格式化):

[lidq@localhost ~]$ sudo mkfs.vfat /dev/sdb1
mkfs.fat 4.0 (2016-05-06)

[lidq@localhost ~]$ sudo mkfs.ext4 /dev/sdb3
mke2fs 1.43.1 (08-Jun-2016)
Creating filesystem with 1441536 4k blocks and 360448 inodes
Filesystem UUID: d05d026a-6177-4a7c-892a-a4a970cd155b
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

         到此为止我们的sdcard的分区工作完成了。



          第三节 烧录系统文件
 
 

        我们将已经下载好的操作系统镜像文件raspbian-jessie.zip解压至某处,这里我的工作目录为/data/temp/你需要按你自己的工作目录来执行后续的命令。进入到你的文件目录并解压完raspbian-jessie.zip之后,在你的工作目录下就会出现一个叫raspbian-jessie的文件夹,里面的文件列表内容为:

bin   dev  home  lost+found  mnt  proc  run   srv  tmp  var
boot  etc  lib   media       opt  root  sbin  sys  usr

        如果你和我一样使用的是Linux操作系统那么你一定要注意了,这个文件目录与你的电脑上的根目录下的内容很相似,但这些文件是在你的工作目录下(/data/temp/raspbian-jessie/)而并不是你的系统文件。

        接下来我们需要将sdcard上的sdb3分区和sdb1分区挂载到我们的电脑上,首先在工作目录上创建一个名为sdcard的文件夹:
 

[lidq@localhost /data/temp/]$ mkdir sdcard

        将/dev/sdb3分区挂载到/data/sdcard/上:

[lidq@localhost /data/temp/]$ sudo mount /dev/sdb3 /data/temp/sdcard/

        创建在sdcard下创建boot文件夹:

[lidq@localhost /data/temp/]$ sudo mkdir sdcard/boot/

        将/dev/sdb1分区挂载到/data/sdcard/boot/上:

[lidq@localhost /data/temp/]$ sudo mount /dev/sdb1 /data/temp/sdcard/boot/

        将raspbian-jessio操作系统文件内容复制到sdcard目录中:

[lidq@localhost  /data/temp/]$ sudo cp -rvp /data/temp/raspbian-jessie/* /data/temp/sdcard/

        复制完成之后,你还需要执行下面几个命令使系统将数据从缓冲区同步到sdcard上,这可能需要一点时间,你需要耐心的等待几分钟:

[lidq@localhost  /data/temp/]$ sudo sync

        于是,我们的树莓派操作系统镜像就已经烧录好了,其实整个过程非常简单,就是将操作系统镜像中的文件复制到我们的sdcard中即可。



          第四节 配置选项
 
 

        在sdcard上烧录好了操作系统之后我们还需要做一些简单的配置,我们还是在/data/temp/工作目录下,sdcard的sdb3和sdb1两个分区仍然挂载到了/data/temp/sdcard/和/data/temp/sdcard/boot/上,我们需要修改/data/temp/sdcard/boot/cmdline.txt这个文件:

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh

        我们需要将root=/dev/mmcblk0p2修改为root=/dev/mmcblk0p3也就是我们的第三个分区sdb3。因为sdb3才是我们的根分区。修改后保存文件。

        修改/data/temp/sdcard/etc/fstab文件输入下面内容(注意顺序不能乱):

/dev/mmcblk0p1  /boot           vfat    defaults  0       2
/dev/mmcblk0p3  /               ext4    defaults  0       1
/dev/mmcblk0p2  swap            swap    defaults  0       0

        修改后保存文件。

        最后执行卸载命令将sdb1和sdb3卸载并安全退出此设备(注意执行顺序):

sudo umount /dev/sdb1
sudo umount /dev/sdb3
sudo eject /dev/sdb

        我们sdcard已经准备完成将其插入树莓派中通电即可:

玩转树莓派:安装操作系统_第4张图片

 

欢迎关注公众号:编程外星人

你可能感兴趣的:(玩转树莓派)