RaspberryPi2 安装系统到硬盘

来源:互联网 发布:源码包安装php 编辑:程序博客网 时间:2024/05/22 08:06

缘起:

众所周知,RaspberryPi2提供了MicroSD卡插槽,通常将系统安装于MicroSD卡上,而通常所用的是RaspberryPi官方Raspbian系统,

以下均针对RaspberryPi2硬件和Raspbian系统而言。

网上有同仁说,有遇到MicroSD卡损坏者,原因可能是发热等等,而优盘相比MicroSD卡就皮实一些。

于是在网上找到了将系统安装在U盘上的方法,并使用了一段时间,期间的文档/代码等均存在该盘上。

然而突然某天就悲剧了,正用的好好的,正常操作报错,桌面图标都变样了。

重启系统,就说某某错误(具体错误名记不清了),系统自动以只读方式挂在系统盘(优盘)。

进了系统什么都做不了,因为系统盘是只读的。

将优盘挂在PC上,同样问题,修复不了。

动用大杀器,优盘量产,能识别出来的时候都报错:Read-Only Page。

这优盘应该是彻底挂了,不再在上面浪费精力。


找原因:

这段时间,频繁配置系统 升级 安装软件 卸载软件 编译代码,怀疑是对优盘读写过多,存储单元坏了。

众所周知,闪存芯片是有读写次数上限的,坏了就坏了。估计是这个原因,而不是因为温度之类的问题。


想办法:

手头有升级换下来的笔记本硬盘,既然Raspbian能安装在优盘上,那么原理上也应该能够安装到硬盘上。

如果能安装到硬盘上,那读写次数应该是数量级的提升。


硬件连接:

我可以想到的在RaspberryPi2上连接硬盘的最便捷方式就是USB接口了。

所以,要用移动硬盘盒(或仅用其USB-IDE或者USB-SATA电路板)作为连接RaspberryPi2和笔记本硬盘的媒介。

但RaspberryPi2的带负载能力是比较弱的,有资料(源待考)说,RaspberryPi2的USB接口负载能力100mA。

但是笔记本硬盘标签上标注供电需求:5V 700mA。

所以,要用RaspberryPi2驱动笔记本硬盘,需要单独为硬盘供电。

方法就是在连接移动硬盘盒和RaspberryPi2的USB线上下工夫,当然,如果上面所说的电路板有单独的供电接口

或者USB线有专门取电的接头,那就直接用好了。

至于怎么下工夫,是个手工活,要点有

1 供电线选够粗的,免得硬盘端电压跌落厉害,不能正常工作。

2 分清正负极,连接好。可靠起见,焊接更好,注意把接头包好,免得漏电短路。正负极可网上搜索。


写Raspbian系统到硬盘

按照正常使用方法,将硬盘接入PC,写入官方Raspbian镜像。

我的PC上安装的Lubuntu,用 sudo dd if=<img file> of=/dev/sdb<n>

<img file> 指的下载并解压出来的磁盘镜像文件

<n>指的是目标硬盘被系统识别后的编号。

如果不清楚<n>是几,可以用GParted软件查看。

需要注意的是,直接下载解压的img文件是磁盘镜像,而不是分区镜像,

写到硬盘上后,硬盘上会存在两个分区,分区1是boot分区,分区2是系统主文件所在分区(暂时称为主分区)。

除此之外,还有很大的闲置空间。

系统主分区空间为3.8G,要装的软件和资料比较多的话,这点空间是不够的,用GParted扩大主分区容量

(用shell命令应该也没问题,但对我来说还比较高大上,先用低小下的图形界面吧)。我把主分区扩大到32G。

剩下的空白空间另建分区,用于存储数据和资料。


准备启动盘

RaspberryPi2上电是从MicroSD卡启动的,即使装系统到硬盘,也少不了一张MicroSD卡,写启动分区内容。

简单的话,直接将硬盘的分区1用dd命令写到MicroSD卡上。

或者下载Raspbian-lite版本,直接将解压的img文件dd到MicroSD卡。

修改MicroSD卡boot分区下command.txt文件配置内容,将root=/dev/mmcblk0p2更改为root=/dev/sda2。

顺便说一下,如果通过HDMI->VGA连接的PC显示器,为了开机正确显示,还需要修改MicroSD卡boot分区下

config.txt文件,

#hdmi_force_hotplug=1

#hdmi_drive=2 

#hdmi_group=1
#hdmi_mode=1
以上删除行首的#,并将修改hdmi_group=2,hdmi_mode=<x>
<x>根据你的显示器按照下表最佳分辨率选择。
These values are valid if hdmi_group=2 (DMT)Note: according to http://www.raspberrypi.org/phpBB3/viewtopic.php?f=26&t=20155&p=195417&hilit=2560x1600#p195443 there is a pixel clock limit which means the highest supported mode is 1920x1200 @60 Hz with reduced blanking.hdmi_mode=1    640x350    85 Hzhdmi_mode=2    640x400    85 Hzhdmi_mode=3    720x400    85 Hzhdmi_mode=4    640x480    60 Hzhdmi_mode=5    640x480    72 Hzhdmi_mode=6    640x480    75 Hzhdmi_mode=7    640x480    85 Hzhdmi_mode=8    800x600    56 Hzhdmi_mode=9    800x600    60 Hzhdmi_mode=10   800x600    72 Hzhdmi_mode=11   800x600    75 Hzhdmi_mode=12   800x600    85 Hzhdmi_mode=13   800x600   120 Hzhdmi_mode=14   848x480    60 Hzhdmi_mode=15   1024x768   43 Hz  DO NOT USEhdmi_mode=16   1024x768   60 Hzhdmi_mode=17   1024x768   70 Hzhdmi_mode=18   1024x768   75 Hzhdmi_mode=19   1024x768   85 Hzhdmi_mode=20   1024x768  120 Hzhdmi_mode=21   1152x864   75 Hzhdmi_mode=22   1280x768          Reduced blankinghdmi_mode=23   1280x768   60 Hzhdmi_mode=24   1280x768   75 Hzhdmi_mode=25   1280x768   85 Hzhdmi_mode=26   1280x768  120 Hz  Reduced blankinghdmi_mode=27   1280x800          Reduced blankinghdmi_mode=28   1280x800   60 Hz  hdmi_mode=29   1280x800   75 Hz  hdmi_mode=30   1280x800   85 Hz  hdmi_mode=31   1280x800  120 Hz  Reduced blankinghdmi_mode=32   1280x960   60 Hz  hdmi_mode=33   1280x960   85 Hz  hdmi_mode=34   1280x960  120 Hz  Reduced blankinghdmi_mode=35   1280x1024  60 Hz  hdmi_mode=36   1280x1024  75 Hz  hdmi_mode=37   1280x1024  85 Hz  hdmi_mode=38   1280x1024 120 Hz  Reduced blankinghdmi_mode=39   1360x768   60 Hz  hdmi_mode=40   1360x768  120 Hz  Reduced blankinghdmi_mode=41   1400x1050         Reduced blankinghdmi_mode=42   1400x1050  60 Hz  hdmi_mode=43   1400x1050  75 Hz  hdmi_mode=44   1400x1050  85 Hz  hdmi_mode=45   1400x1050 120 Hz  Reduced blankinghdmi_mode=46   1440x900          Reduced blankinghdmi_mode=47   1440x900   60 Hz  hdmi_mode=48   1440x900   75 Hz  hdmi_mode=49   1440x900   85 Hz  hdmi_mode=50   1440x900  120 Hz  Reduced blankinghdmi_mode=51   1600x1200  60 Hz  hdmi_mode=52   1600x1200  65 Hz  hdmi_mode=53   1600x1200  70 Hz  hdmi_mode=54   1600x1200  75 Hz  hdmi_mode=55   1600x1200  85 Hz  hdmi_mode=56   1600x1200 120 Hz  Reduced blankinghdmi_mode=57   1680x1050         Reduced blankinghdmi_mode=58   1680x1050  60 Hz  hdmi_mode=59   1680x1050  75 Hz  hdmi_mode=60   1680x1050  85 Hz  hdmi_mode=61   1680x1050 120 Hz  Reduced blankinghdmi_mode=62   1792x1344  60 Hz  hdmi_mode=63   1792x1344  75 Hz  hdmi_mode=64   1792x1344 120 Hz  Reduced blankinghdmi_mode=65   1856x1392  60 Hz  hdmi_mode=66   1856x1392  75 Hz  hdmi_mode=67   1856x1392 120 Hz  Reduced blankinghdmi_mode=68   1920x1200         Reduced blankinghdmi_mode=69   1920x1200  60 Hz  hdmi_mode=70   1920x1200  75 Hz  hdmi_mode=71   1920x1200  85 Hz  hdmi_mode=72   1920x1200 120 Hz  Reduced blankinghdmi_mode=73   1920x1440  60 Hz  hdmi_mode=74   1920x1440  75 Hz  hdmi_mode=75   1920x1440 120 Hz  Reduced blankinghdmi_mode=76   2560x1600         Reduced blankinghdmi_mode=77   2560x1600  60 Hz  hdmi_mode=78   2560x1600  75 Hz  hdmi_mode=79   2560x1600  85 Hz  hdmi_mode=80   2560x1600 120 Hz  Reduced blankinghdmi_mode=81   1366x768   60 Hz  hdmi_mode=82   1080p      60 Hz  hdmi_mode=83   1600x900          Reduced blankinghdmi_mode=84   2048x1152         Reduced blankinghdmi_mode=85   720p       60 Hz  hdmi_mode=86   1366x768          Reduced blanking
《link http://elinux.org/RPiconfig》

连接硬件,启动系统
插入MicroSD卡到RaspberryPi2,其他键盘鼠标显示器之类的不赘述。
硬盘电源接入
硬盘USB线连接到RaspberryPi2 USB口
RaspberryPi2加电
应该可以看到启动界面,进了系统,剩下的就可以自己折腾了。


后记

我的40G并口三星金盘每次准备好,第一次进系统只读挂载,重启再进系统就无法挂载。

换了320串口日立硬盘,没出问题。

在操作的时候,系统对硬盘的读写相当频繁,推测用优盘做系统盘的原因就是读写次数多了。

目前存在的小问题是,一段时间不操作,硬盘就失效,需要重启。

怀疑是硬盘一段时间不操作自动进入了省电模式。也可能是硬盘供电的问题,但可能性小,后面再排查。


补记:

后面又换了块移动硬盘电路板,按照上述步骤安装后,系统正常运行至今。

可知,后记中的现象与移动硬盘电路板(主要是主控芯片及其固件)有关。

有遇到类似问题者,可尝试更换移动硬盘电路板。

0 0
原创粉丝点击