尤其在互联网公司中,如果不是分工特别明确的独立业务组,通常需要自己处理很多东西,例如一个算法工程师,虽然不要求你装机,但是和负责部署服务的同事对接口,总不能连json是啥都不知道(工作中遇到过一个ETL工程师,不会liunx,不知道json)

一、装机准备

1、选择版本、下载镜像

centos和ubuntu 仁者见仁智者见智,我的大致方向就是注重稳定选centos,深度学习Ubuntu优先,版本不必追求最新,选择成熟的稳定版本会更好,比如centos7.2(7.5),Ubuntu 16.04

2、制作启动u盘

制作启动u盘可参考帖子:
零基础安装服务器系统(centos 7.5 u盘安装遇到的一些坑)
大致流程是:
1. 我们现在首先要下载一个UltraISO(软碟通)的软件,一个至少5g的空u盘,还有就是我们下载好的系统镜像
2. 先要打开我们下载的iso镜像,注意是iso结尾的文件
3. 插上我们的空u盘,当然我们一开始就可以插上我们的u盘了,下面我们就要开始制作我们的系统盘了

二、安装操作系统 以centos7.2为例

1、重置服务器

如果购买的是商用服务器,请直接打售后电话,客服会一步一步指导你重置你的服务器,我这次接触的是联想的ThinkServiceRD560,售后的态度和专业度很不错,用电话基本上是手把手教你重置RAID卡,这里我建议大家找客服或者官方文档,别上网找帖子,费时又费力。这里放上官方文档,比较详细:
ThinkServer RD/TDx50系列服务器板载SATA RAID110i驱动及安装RHEL 6.x/7.x要点说明
如果是买的二手,也尽量找品牌售后。

2、安装系统

物理机如果组的有raid磁盘阵列的话,安装centos还是有坑的,选择合适的方式很重要,搜索结果不少,靠谱的不多,详细可以看这篇帖子:
centos7 u盘安装遇到的坑以及靠谱解决方法。

关键点为:

显示 /dev/root does not exist,此时输入下面的命令:
ls /dev/sd*

列出机器的所有存储设备,一般来说sdb是系统自带的,U盘会是其他命名,另外靠后的。(这个时候需要自己判断)

正如上图所示,我找到U盘存储的编号是sda4,然后输入reboot重启电脑。

同样F12,等到出现图1的画面是,按住键盘e键,此时会进入编辑页面,会看到有这样的默认的一行,

vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet

并改成
vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sda4:/ quiet

其中
/dev/sda4:/
替换掉之前的
LABEL=CentOS\x207\x20x86_64 rd.live.check
然后CRTL+X继续安装,下面就进入正常的安装页面。

特别提醒:如果开机按F12看不到u盘,需要在bios设置启动方式 ,一般是从UEFI only改为 Legacy 或者 auto

3、分区设置

分区可以参考这个帖子,centos7.2 分区方案建议

关键点为:

必须的分区

boot分区:
  • 作用:引导分区,包含了系统启动的必要内核文件,即使根分区顺坏也能正常引导启动 一般这些文件所占空间在200M以下,
  • 分区建议:分区的时候可选100M-500M之间,如果空间足够用,建议分300-500M。避免由于长期使用的冗余文件塞满这个分区。
  • 分区格式:建议ext4,按需求更改
/分区(根分区):
  • 作用:所有的文件都从这里开始,你可以比喻为Windows的C盘,但其实有区别。如果你有大量的数据在根目录下(比如FTP等)可以划分大一点的空间
  • 分区建议:建议15G以上。看需求,根分区和home分区的大小就类似C盘和D盘的空间分布一样,主要占空间在哪儿就在那里分大容量
  • 分区格式:建议ext4,按需求更改
swap分区:
  • 作用:类似于Windows的虚拟内存,在内存不够用时占用硬盘的虚拟内存来进行临时数据的存放,而对于linux就是swap分区
  • 分区建议:建议是物理内存大小的2倍,比如你电脑是4G的物理内存,swap分区可以是8G
  • 分区格式:swap格式

可选的分区

home分区
  • 作用:存放用户数据,HOME的结构一般是 HOME/userName/userFile,如果不分则默认在/目录下
  • 分区建议:如果用户数据多可以将此分区适当增大,请参考“根分区”分区建议;一般硬盘的主要容量几乎都在Home分区和根分区下
  • 分区格式:建议ext4,按需求更改
var分区
  • 作用:用于log日志的文件的存放,如果不分则默认在/目录下
  • 分区建议:如果你安装的linux是用于服务器或者经常做日志分析,请划分var分区,避免日志文件不断膨胀塞满导致根分区而引发问题。
  • 分区格式:建议ext4,按需求更改

三、进行基础配置

如果从新启动顺利进入系统,提示输入用户名,那么应该系统总算是装好了,下面开始进行基础配置,当然我这里只是进行最基本的,包括配置ip地址,安装nginx mysql pip等,自己做个记录,也分享一点可能遇到的坑

1、centos7配置静态IP步骤

服务器默认是不开启网络服务的,需要在配置里打开,然后根据网络情况,配置静态ip,以便用远程ssh客户端一类的工具远程操作,再也不用蹲在吵闹闷热的机房了。
centos7配置静态IP步骤

关键点为:

最后的网卡编号可能有所不同,一般服务器有5个网卡,其中四个是并排的,配置4个并排的其中之一即可,机器后面网线也要插对哦!
vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 

原先的配置类似这样的

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens33
UUID=ea35e10e-ff50-4a7a-92d5-ab54c58d8b44
ONBOOT=no

没想到在centos7里默认是不启动网卡的,奇怪的设定啊,所以网卡才没有激活,于是将ONBOOT改为yes,然后再加上以下几个参数的设置 :

IPADDR=192.168.2.181   (你想设置的IP地址)
NTSMASK=255.255.0.0
GATEWAY=192.168.2.1    (默认网关)
HWADDR=00:0C:29:2C:E5:30  (物理地址)
DNS1=114.114.114.114    (首选DNS地址,可与默认网关一样)
5:(:wq)保存退出
6:重新启动网络服务
service network restart
这样应该就完成配置可以上网了

遇坑提醒:

查看网络服务状态
systemctl status network.service
如果重启网路服务失败, 或者执行
systemctl status network.service 命令提示错误

Starting network (via systemctl):  Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details

[root@localhost ~]# systemctl status network.service
● network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since 日 2017-02-12 21:57:48 CST; 20s ago
Docs: man:systemd-sysv-generator(8)
Process: 3170 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
2月 12 21:57:48 localhost.localdomain network[3170]: RTNETLINK answers: File exists
2月 12 21:57:48 localhost.localdomain network[3170]: RTNETLINK answers: File exists
2月 12 21:57:48 localhost.localdomain network[3170]: RTNETLINK answers: File exists
2月 12 21:57:48 localhost.localdomain network[3170]: RTNETLINK answers: File exists
2月 12 21:57:48 localhost.localdomain network[3170]: RTNETLINK answers: File exists
2月 12 21:57:48 localhost.localdomain network[3170]: RTNETLINK answers: File exists
2月 12 21:57:48 localhost.localdomain systemd[1]: network.service: control process exited, code=exited status=1
2月 12 21:57:48 localhost.localdomain systemd[1]: Failed to start LSB: Bring up/down networking.
2月 12 21:57:48 localhost.localdomain systemd[1]: Unit network.service entered failed state.
2月 12 21:57:48 localhost.localdomain systemd[1]: network.service failed.

如果出现 Failed to start LSB: Bring up/down networking. 这样,那就比较烦人了,反正我是试了很多方法,最后换了一个网口重新配置才成功,以下提供一下参考:

1、在配置文件中,增加 NM_CONTROLLED=no 表示该接口将通过该配置文件进行设置,而不是通过网络管理器进行管理
2、和 NetworkManager 服务有冲突,这个好解决,直接关闭 NetworkManger 服务,service NetworkManager stop
并且禁止开机启动
chkconfig NetworkManager off
之后重启
3、再不行可尝试这里 centos7 无法启动网络(service network restart)错误解决办法

2、安装pip、nginx、 mysql

这个网上一大堆,具体就不说了,放两个比较简洁的命令

安装pip

首先安装epel扩展源:

yum -y install epel-release

更新完成之后,就可安装pip:

yum -y install python-pip

安装完成之后清除cache:

yum clean all

这是在root用户时使用的命令,当前用户如果不具有root权限,加上sudo。

如果pip install 出现问题可以试试命令

pip install setuptools==33.1.1

安装Nginx

通过yum search nginx看看是否已经添加源成功。如果成功则执行下列命令安装Nginx。

sudo yum install nginx

启动Nginx并设置开机自动运行

sudo systemctl start nginx.service
sudo systemctl enable nginx.service
yum install nginx

nginx在reload时候报错invalid PID number

安装Mysql数据库

安装mysql稍微有点麻烦,因为大家都懂的原因,虽然我没搞明白。这里是一个比较简明的教程 超简单CentOS7用yum安装mysql 使用中可能我已经更新了源,所以并没有帖子中那么麻烦,简要步骤如下:

主要步骤:

1、卸载mariadb,否则安装mysql会出现冲突
执行命令
rpm -qa | grep mariadb

列出所有被安装的mariadb rpm 包;
执行命令

rpm -e --nodeps 包名称(比如:rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64)

逐个将所有列出的mariadb rpm 包给卸载掉

2、安装

执行命令
sudo yum install mysql-community-server

4、启动

执行命令
sudo service mysqld start

5、改mysql 的root密码

mysqladmin -u root -p password 你的新密码

初始密码为空,直接按回车即可

注意:mysql5.7的初始密码是随机生成的,放在了 /var/log/mysqld.log
使用命令 grep ‘temporary password’ /var/log/mysqld.log 读出来即可。

四、其他补充

如果访问不了,可以看看是否关闭了centos自带的防火墙
CentOS7使用firewalld打开关闭防火墙与端口

CentOS7使用firewalld打开关闭防火墙与端口

启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld

如果还是不行,那么就需要看看组网的路由是否有进行限制,这个就要找运维了。

算法工程师首先是工程师系列01 - 服务器篇 - 物理服务器安装centos7的更多相关文章

  1. Batch Normalization原理及其TensorFlow实现——为了减少深度神经网络中的internal covariate shift,论文中提出了Batch Normalization算法,首先是对”每一层“的输入做一个Batch Normalization 变换

    批标准化(Bactch Normalization,BN)是为了克服神经网络加深导致难以训练而诞生的,随着神经网络深度加深,训练起来就会越来越困难,收敛速度回很慢,常常会导致梯度弥散问题(Vanish ...

  2. Java工程师之Redis实战系列教程前言&目录

    系列前言 Java工程师之Redis实战系列教程,同其他教程一样,均是在下学习笔记,本系列主要参考自<Redis-in-action>,将书本中的有趣的例子转化为能解决特定问题的示例程序, ...

  3. 前端工程师技能之photoshop巧用系列第五篇——雪碧图

    × 目录 [1]定义 [2]应用场景 [3]合并[4]实现[5]维护 前面的话 前面已经介绍过,描述性图片最终要合并为雪碧图.本文是photoshop巧用系列第五篇——雪碧图 定义 css雪碧图(sp ...

  4. 前端工程师技能之photoshop巧用系列第四篇——图片格式

    × 目录 [1]图片格式 [2]保存设置 前面的话 对于前端来说,图片格式是需要重要掌握的知识.本文是photoshop巧用系列第四篇——图片格式 图片格式 目前在前端的开发中常用的图片格式有jpg. ...

  5. Linux服务器部署系列之八—Sendmail篇

    Sendmail是目前Linux系统下面用得最广的邮件系统之一,虽然它存在一些不足,不过,目前还是有不少公司在使用它.对它的学习,也能让我们更深的了解邮件系统的运作.下面我们就来看看sendmail邮 ...

  6. php从入门到放弃系列-01.php环境的搭建

    php从入门到放弃系列-01.php环境的搭建 一.为什么要学习php 1.php语言适用于中小型网站的快速开发: 2.并且有非常成熟的开源框架,例如yii,thinkphp等: 3.几乎全部的CMS ...

  7. 从别人的代码中学习golang系列--01

    自己最近在思考一个问题,如何让自己的代码质量逐渐提高,于是想到整理这个系列,通过阅读别人的代码,从别人的代码中学习,来逐渐提高自己的代码质量.本篇是这个系列的第一篇,我也不知道自己会写多少篇,但是希望 ...

  8. java io系列01之 "目录"

    java io 系列目录如下: 01. java io系列01之  "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括 ...

  9. SAP接口编程 之 JCo3.0系列(01):JCoDestination

    SAP接口编程 之 JCo3.0系列(01):JCoDestination 字数2101 阅读103 评论0 喜欢0 JCo3.0是Java语言与ABAP语言双向通讯的中间件.与之前1.0/2.0相比 ...

随机推荐

  1. android NDK 神经网络API——是给tensorflow lite调用的底层API,应用开发者使用tensorflow lite即可

    eural Networks API In this document show more Understanding the Neural Networks API Runtime Neural N ...

  2. hihocoder 1680 hiho字符串2 dp求方案数+递归

    我们定义第一代hiho字符串是"hiho". 第N代hiho字符串是由第N-1代hiho字符串变化得到,规则是: h -> hio i -> hi o -> ho ...

  3. SpringCloud学习 什么是微服务(一)

    关于SpringCloud,我是看了周老师的<SpringCloud与Docker微服务架构实战>之后才有了一点了解,做下记录,以供后期学习.本人知识有限,如有不对,欢迎批评 1.什么是单 ...

  4. 笔记《javascript高级程序设计》 第12章 DOM2和DOM3

    DOM2 级核心:在 1 级基础上构建,为节点添加更多方法和属性 DOM2 级视图:为文档定义了基于样式信息的不同视图 DOM2 级事件:说明了如何使用事件和DOM文档交互 DOM2 级样式:如何以编 ...

  5. 每日算法——新型在线LCA

    在线LCA一般大家都会用倍增吧,时间复杂度O(nlogn),空间复杂度O(nlogn),都是非常严格的复杂度限制,并且各种边界处理比较麻烦,有没有更快更好的办法呢? 我们发现,在树链剖分时,我们不经意 ...

  6. MYSQL日期时间字符串互转

    --MYSQL date_format(date,'%Y-%m-%d') -------------->oracle中的to_char(); 日期时间转字符串 --MYSQL str_to_da ...

  7. Spring Boot (5) Spring Boot配置详解

    application.properties application.properties是spring boot默认的配置文件,spring boot默认会在以下两个路径搜索并加载这个文件 src\ ...

  8. SQLServer2008 关于Having

    转自百度百科 与where 相比 HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似. WHERE 子句搜索条件在进行分组操作之前应用: ...

  9. Windows phone开发之文件夹与文件操作系列(一)文件夹与文件操作

    Windows phone7中文件的存储模式是独立的,即独立存储空间(IsolatedStorage).对文件夹与文件操作,需要借助IsolatedStorageFile类. IsolatedStor ...

  10. [转]line-height1.5和line-height:150%的区别

    line-height1.5和line-height:150%的区别   一.区别 区别体现在子元素继承时,如下: 父元素设置line-height:1.5会直接继承给子元素,子元素根据自己的font ...