尤其在互联网公司中,如果不是分工特别明确的独立业务组,通常需要自己处理很多东西,例如一个算法工程师,虽然不要求你装机,但是和负责部署服务的同事对接口,总不能连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开发之PullToRefresh的Click点击事件的监听实现长按删除Item

    本文为原创博客.出自http://blog.csdn.net/minimicall 到今天为止,搜芽的卖家版本号应该来说已经基本完毕.攻坚克难的一路过来.速度也控制的比較好. 项目过程进度 从任务分配 ...

  2. poj 1080 Human Gene Functions (最长公共子序列变形)

    题意:有两个代表基因序列的字符串s1和s2,在两个基因序列中通过添加"-"来使得两个序列等长:其中每对基因匹配时会形成题中图片所示匹配值,求所能得到的总的最大匹配值. 题解:这题运 ...

  3. 小米手机 js 脚本取src为空的适配问题

    今天測试提上来一个问题 我android webview 中运行了一段js脚本.去替换原来的图片.可是小米手机上竟然没起作用 花了一个中午的午休看问题 贴出来帮助下遇到相同的问题的朋友吧.我百度了半天 ...

  4. mac Homebrew Updating慢,替换及重置Homebrew默认源

    替换成清华的镜像: https://lug.ustc.edu.cn/wiki/mirrors/help/brew.git

  5. ORA-24247: 网络訪问被訪问控制列表 (ACL) 拒绝

     ORA-24247: 网络訪问被訪问控制列表 (ACL) 拒绝 注意:须要在system用户下使用命令 须要先使用 DBMS_NETWORK_ACL_ADMIN.CREATE_ACL 创建訪问控 ...

  6. 关于ajax技术

    传统注册存在的弊端 : 当我们点击注册时,会存在以下几个问题. 首先,浏览器会销毁当前页面,如果注册失败返回的新页面所有之前 填写的数据丢失. 其次,如果网络通信较差,我们表单提交请求数据到服务端,而 ...

  7. CH Round #24 - 三体杯 Round #1-C 逃不掉的路

    留个e-DCC的板子 #include<cstdio> #include<iostream> #include<cstring> #include<cstdl ...

  8. B1231 [Usaco2008 Nov]mixup2 混乱的奶牛 状压dp

    发现是状压dp,但是还是不会...之前都白学了,本蒟蒻怎么这么菜,怎么都学不会啊... 其实我位运算基础太差了,所以状压学的不好. 题干: Description 混乱的奶牛 [Don Piele, ...

  9. c语言中struct的初始化

    C++中的struct已经和class一样,可以用构造函数初始化. C语言中的struct怎么初始化呢? typedef struct _TEST_T {        int i;        c ...

  10. hdu 4297

    有两个基础需要掌握: RMQ,以及LCA. RMQ:dp[i][j]表示下标从i开始,长度为2^j的一段元素中的最值.则易得状态转移如下:dp[i][j]=max/min(dp[i][j-1],dp[ ...