centos cp卡住(centos7图形界面卡住了)

本篇文章给大家谈谈centos cp卡住,以及centos7图形界面卡住了对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

centos6.5安装到U盘出问题

usblinux把linux系统安装到u盘里

加电

BIOS找启动方式,找设备

MBR

grub

vmlinux initrd

产生init

/etc/inittab-->找到应该启动的级别

按照不同的级别启动不同类型的服务/etc/rcX.d/

/etc/rc.sysinit

/etc/rc.local

产生终端可以登录

ls/root/install.log

livecd不用安装,直接可以使用系统的CD,DVD

回顾开机启动的过程:

开机-->bios(配置主板的程序,basic input and output system,加电自检,找到启动设备的编号)-->找到mbr(master bootloader record,它是属于硬盘的0磁盘0扇区)-->grub-->通过grub找到vmlinuz和initrd(驱动硬件)-->内核启动,产生init进程-->/etc/inittab(确定系统的启动级别)-->/etc/rc.sysinit(获取主机的网络环境和主机类型,测试与载入设备,是否启动selinux,模块的加载,设置系统时间.................)-->/etc/rc.local

与USB有关的模块

[root@li~]# lsmod|grep ci

uhci_hcd 25421 0

ohci_hcd 24553 0

ehci_hcd 33869 0

--因为U盘分区在windows下不认,所以我这里两G的U盘,直接都用来做usblinux

1,首先删除U盘里原有分区

第一种:用fdisk/dev/sdb,然后用d命令去删除

第二种:dd if=/dev/zero of=/dev/sdb bs=1024 count=1--删除磁盘分区信息

重新按照规划的去分区:

Disk/dev/sdb: 2000 MB, 2000570368 bytes

62 heads, 62 sectors/track, 1016 cylinders

Units= cylinders of 3844* 512= 1968128 bytes

Device Boot Start End Blocks Id System

/dev/sdb1* 1 763 1466455 83 Linux

/dev/sdb2 764 1016 486266 82 Linux swap/ Solaris

Command(m for help): w

--或者分为1G做usblinux,500m做swap,500m留给fat32

Disk/dev/sdb: 2000 MB, 2000570368 bytes

62 heads, 62 sectors/track, 1016 cylinders

Units= cylinders of 3844* 512= 1968128 bytes

Device Boot Start End Blocks Id System

/dev/sdb1* 1 509 978267 83 Linux

/dev/sdb2 510 764 490110 82 Linux swap/ Solaris

/dev/sdb3 765 1016 484344 b W95 FAT32

Command(m for help): w

[root@li~]# partprobe

--有些U盘报kerenl相关的两到三段信息,就不要使用多分区,就分一个分区。

2,格式化分区,并挂载

[root@li www]# partprobe--fdisk分区后,都要用此命令刷新

--这一步,有很多U盘会报错,如果报错的话最好去windows虚拟机下全格一下,再重新在linux下来做

[root@li www]# mkfs-t ext3/dev/sdb1

[root@li www]# mkswap/dev/sdb2

[root@li www]# mkdir/usb

[root@li www]# mount/dev/sdb1/usb/--建立一个目录,挂载/dev/sdb1

3,安装基本的目录结构

准备光盘iso文件,挂载到一个目录去

[root@li www]# mount/share/iso/rhel-5.4-server-i386-dvd.iso/yum/-o loop

[root@li www]# cd/yum/Server/

[root@li Server]# rpm-qip filesystem-2.4.0-2.i386.rpm

Description:

filesystem软件包是安装在红帽 Linux系统上的一个基本

软件包。filesystem含有一个 Linux操作系统的基本目录布局,

包括各目录的正确许可权限。

要使用--nodeps脱离依赖性才可以安装

[root@li Server]# rpm-ivh--root=/usb/--nodeps filesystem-2.4.0-2.i386.rpm

或者先装setup包,再装filesystem包

[root@li~]# rpm-ivh--root=/usb/share/yum/Server/setup-2.5.58-7.el5.noarch.rpm

[root@li~]# rpm-ivh--root=/usb/share/yum/Server/filesystem-2.4.0-2.i386.rpm

[root@li~]# ls/usb--一个基本的目录布局就已经装好了

bin etc lost+found opt sbin sys var

boot home media proc selinux tmp

dev lib mnt root srv usr

4,安装相应的软件包,也就是定制功能

下面最主要的一步就是安装系统的软件包,首先要思考安装的这个USB系统需要什么功能,比如最基本的命令ls,cd等

这里可以选择使用busybox(是一个基本命令工具集),但如果对其不是特别熟悉,还是按基本命令一个一个的来选

首先要装bash包,包含50多个内部命令

[root@dns Server]# chroot/usb--不装bash无法 chroot进去

chroot: cannot run command `/bin/bash': No such file or directory

[root@dns Server]# rpm-qf/bin/ls

coreutils-5.97-23.el5

[root@dns Server]# rpm-qf `which vi`

vim-minimal-7.0.109-6.el5

[root@dns Server]# rpm-qf `which vim`

vim-enhanced-7.0.109-6.el5

[root@dns Server]# rpm-qf `which ping`

iputils-20020927-46.el5

[root@dns Server]# rpm-qf `which mount`

util-linux-2.13-0.52.el5

[root@dns Server]# rpm-qf `which tar`

tar-1.15.1-23.0.1.el5

[root@dns Server]# rpm-qf `which rpm`

rpm-4.4.2.3-18.el5

[root@dns Server]# rpm-qf `which man`

man-1.6d-1.1

[root@dns Server]# rpm-qf `which ssh`

openssh-clients-4.3p2-36.el5

[root@dns Server]# rpm-qf `which awk`

gawk-3.1.5-14.el5

[root@dns Server]# rpm-qf `which sed`

sed-4.1.5-5.fc6

[root@dns Server]# rpm-qf `which grep`

grep-2.5.1-55.el5

[root@dns Server]# rpm-qf `which find`

findutils-4.2.27-6.el5

[root@dns Server]# rpm-qf `which locate`

mlocate-0.15-1.el5.2

[root@dns Server]# rpm-qf `which useradd`

shadow-utils-4.0.17-14.el5

[root@dns Server]# rpm-qf `which passwd`

passwd-0.73-1

[root@dns Server]# rpm-qf `which init`

SysVinit-2.86-15.el5

[root@dns Server]# rpm-qf `which clear`

ncurses-5.5-24.20060715

[root@dns Server]# rpm-qf `which ps`

procps-3.2.7-11.1.el5

[root@dns Server]# rpm-qf/usr/bin/which

which-2.16-7

[root@dns Server]# rpm-qf `which ifconfig`

net-tools-1.60-78.el5

[root@dns Server]# rpm-qf `which fdisk`

util-linux-2.13-0.52.el5

[root@dns Server]# rpm-qf `which partprobe`

parted-1.8.1-23.el5

[root@li~]# rpm-qf `which showmount`

nfs-utils-1.0.9-42.el5

[root@li~]# rpm-qf `which service`

initscripts-8.45.30-2.el5

[root@li Server]# rpm-qf `which bzip2`

bzip2-1.0.3-4.el5_2

[root@li Server]# rpm-qf `which gzip`

gzip-1.3.5-10.el5

--经过上面对基本命令的包查找,最终安装下列这些基本包

[root@dns Server]# yum install--installroot=/usb bash coreutils vim-minimal vim-enhanced iputils util-linux tar rpm man openssh-clients gawk sed grep findutils mlocate shadow-utils passwd SysVinit ncurses procps which net-tools util-linux parted nfs-utils initscripts bzip2 gzip

--如果上面步骤安装完后,有忘记安装的包,再使用yum装不上去

[root@li~]# yum install--installroot=/usb iptables

Loaded plugins: downloadonly, rhnplugin, security

This system is not registered with RHN.

RHN support will be disabled.

Setting up Install Process

No package iptables available.

Nothing to do

--所以再安装的话使用rpm去安装

[root@li~]# rpm-ivh--root=/usb/share/yum/Server/iptables-1.3.5-5.3.el5.i386.rpm

5,安装启动引导文件和模块

[root@li Server]# chroot/usb--使用此命令,就是以/usb目录为根目录了

bash-3.2# ls/boot/--可以看到现在usblinux里的/boot目录没有任何文件

bash-3.2# exit--用exit退出chroot模式

exit

[root@li~]# cp/etc/skel/.bash*/usb/root/-rf

--拷环境变量模版过去

定制支持usb存储启动的ramdisk(initrd文件)

[root@li Server]# mkinitrd--with usb_storage/usb/boot/initrd.img `uname-r`

从真机上拷贝vmlinuz到usblinux对应目录

[root@li Server]# cp/boot/vmlinuz-2.6.18-164.el5/usb/boot/vmlinuz

从真机上拷贝内核模块到usblinux对应目录

[root@li Server]# cp/lib/modules/2.6.18-164.el5//usb/lib/modules/-rf

拷内核源码,可选步骤

[root@li Server]# mkdir/usb/usr/src/kernels/

[root@dns Server]# cp/usr/src/kernels/2.6.18-164.el5-i686//usb/usr/src/kernels/-rf

6,安装并手动写grub

--如果是用真实机分区来代替U盘做usblinux的话,这一步不用做,只需要把这个分区的引导信息加入到真实机的配置文件里就可以了

安装grub包,用--nodeps脱离依赖性

[root@li Server]# rpm-ivh--nodeps--root=/usb grub-0.97-13.5.i386.rpm

--脱离依赖安装,会没有splash.xpm.gz图片,可以从真机拷一个

也可以按下面安装

[root@li~]# rpm-ivh--root=/usb/share/yum/Server/*logos*

warning:/share/yum/Server/redhat-logos-4.9.16-1.noarch.rpm

[root@li~]# rpm-ivh--root=/usb/share/yum/Server/grub-0.97-13.5.i386.rpm

--但这样安装完后,grub目录下只有一个背景图片

[root@dns Server]# ls/usb/boot/grub/

splash.xpm.gz

grub-install安装到/dev/sdb

[root@li Server]# grub-install--root-directory=/usb--recheck/dev/sdb

--如果是用真实机分区来做的话,这里/dev/sdb改成/dev/sda

--grub-install之后,grub目录的基本文件就有了(除了配置文件grub.conf)

[root@dns Server]# ls/usb/boot/grub/

device.map iso9660_stage1_5 splash.xpm.gz vstafs_stage1_5

e2fs_stage1_5 jfs_stage1_5 stage1 xfs_stage1_5

fat_stage1_5 minix_stage1_5 stage2

ffs_stage1_5 reiserfs_stage1_5 ufs2_stage1_5

修改device.map

[root@li Server]# vim/usb/boot/grub/device.map

(hd0)/dev/sdb

--如果是用真实机分区来做的话,这里/dev/sdb改成/dev/sda

手动写grub.conf文件

--下面是以u盘来做的写法

[root@li Server]# vim/usb/boot/grub/grub.conf

default=0

timeout=-1

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title usblinux

root(hd0,0)

kernel/boot/vmlinuz ro root=/dev/sdb1

initrd/boot/initrd.img

=============================================

--因为我这次是使用真实机的/dev/sda14来做根./dev/sda15做swap

上面的第6步不用做,只做这一小段就好了

所以把下面这段加到真实机的/boot/grub/grub.conf里

title usblinux

root(hd0,13)--因为我模拟的这个usblinux的根为sda14,所以这里写13

kernel/boot/vmlinuz ro root=/dev/sda14

initrd/boot/initrd.img

# grub-install/dev/sda--加完后,就grub-install安装一下

--------------------------------------------------

7,拷贝密码文件,拷贝环境变量

--这一步可以不拷,因为现在usblinux上默认有passwd和group文件,没有shadow和gshadow

--里面默认有root用户和系统用户

[root@li Server]# cp/etc/passwd/usb/etc/passwd

[root@li Server]# chroot/usb/--再次chroot到/usb目录,提示符就变了

[root@li/]# pwconv--同步/etc/passwd和/etc/shadow

[root@li/]# grpconv--同步/etc/group和/etc/gshadow

[root@li/]# passwd root--修改root的密码,到时候登录需要

8,手动编写fstab文件

[root@li/]# vim/etc/fstab--注意这里是usblinux系统里的fstab,因为已经chroot进来了

/dev/sdb1/ ext3 defaults 0 0

/dev/sdb2 swap swap defaults 0 0

devpts/dev/pts devpts gid=5,mode=620 0 0

sysfs/sys sysfs defaults 0 0

proc/proc proc defaults 0 0

tmpfs/dev/shm tmpfs defaults 0 0

--用真实机的/dev/sda14来做根./dev/sda15做swap的话,就把上面的sdb1换成sda14,sdb2换成sda15,其它的不变

9,让usblinux支持网络

从真机拷贝eth0的配置文件到usblinux对应目录中:

[root@li Server]# cp/etc/sysconfig/network-scripts/ifcfg-eth0/usb/etc/sysconfig/network-scripts/

修改网络配置文件,可以改成静态IP

[root@li Server]# vim/usb/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=dhcp

ONBOOT=yes

从真机拷贝全局网络配置文件到usblinux对应目录中

[root@li Server]# cp/etc/sysconfig/network/usb/etc/sysconfig/

从真机拷贝modprobe.conf到usblinux对应目录中

[root@li Server]# cp/etc/modprobe.conf/usb/etc/

alias eth0 8139too--注意这一句在不同的系统里可能要修改,现在这里的网卡模块是8139too,所以这里是8139too就可以;这个在虚拟机里为pcnet32

然后重启系统,在bios选择使用usb引导进入系统,去验证功能

--如果是真实机分区做的,就不用改bios,直接在grub选择菜单选择usblinux引导进入就可以了

-------------------------------------------------------------

上面的步骤里还没有去加的功能有动态获取IP(需要安装dhclient包)

没有yum命令,没有图形界面(有需要的话,自己使用rpm安装yum命令后,使用yum安装图形包的两个组)

启动时有大量无用信息,可以在grub.conf里加rhgb quiet来解决

但重启后还会有一个错误信息:

(会有一个usb_storage的报错信息,但此信息没有影响,是mkinitrd--with usb_storage时造成的)

如果一定要除掉这句报错,可以手工修改initrd文件

# cd/tmp

# cp/usb/boot/initrd.img/tmp/initrd.img.gz

# gunzip initrd.img.gz

# cpio-i--make-directories< initrd.img

# rm initrd.img

# vim init--打开,删除以下的几行

echo"loading usb-storage.ko module"

insmod/lib/usb-storage.ko

echo waiting for dirver initialization

stabilized/proc/bus/usb/devices

echo waiting for driver initializtin

# find.| cpio-c-o>../initrd.img

# gzip-9../initrd.img

# cp../initrd.mg.gz/usb/boot/initrd.img

=============================================================

CentOS下cp如何直接覆盖命令CentOS下cp直接覆盖命令的方法

cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,当没有打包的情况下直接复制把test目录下的文件复制到test1目录

cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,当没有打包的情况下直接复制

把test目录下的文件复制到test1目录

cp–r test/* test1

执行上面的命令时,test1存在的每个文件都会提示是否覆盖;

cp–rf test/* test1

执行上面的命令时,test1存在的每个文件都不再会提示;

这是我们希望的理想状态,但是有时加了-f了,还会有提示.

因为服务器会默认增加别名 alias cp='cp-i',当你执行cp时,其实执行的是cp–i。

alias下就可以看出来了。

# alias

alias cp='cp-i'

用下面可以解决

# vi~/.bashrc

在alias cp='cp-i'前加上"#"注释掉这行,:wq!保存推出,然后重新登陆就可以了。

下次在使用cp-rf就可以直接覆盖已经存在了文件了

当然你不想改变别名的话可以转义掉,\cp-rf即可

/cp rfv mnt opt centos报错

关闭防火墙和selinux和主机映射(须双节点都操作)

#compute

[root@compute~]# setenforce 0

[root@compute~]# getenforce

Permissive

[root@compute~]# systemctl stop firewalld&& systemctl disable firewalld

#controller

[root@compute~]# setenforce 0

[root@compute~]# getenforce

Permissive

[root@compute~]# systemctl stop firewalld&& systemctl disable firewalld

#主机映射(这里就放一个节点的示例)

[root@controller~]# cat/etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168..10 controller

192.168..20 compute

配置yum(我所配置的是http服务yum,如果配置ftp服务的可以参考其他作者文章)

#controller

[root@controller~]# mv/etc/yum.repos.d/*/home/

[root@controller~]# mkdir/opt/centos

[root@controller~]# mkdir/opt/openstack

[root@controller~]# vi/etc/yum.repos.d/http.repo

[centos]

name=centos

baseurl=

gpgcheck=0

enabled=1

[iaas]

name=iaas

baseurl=

gpgcheck=0

enabled=1

上传1804文件和iaas文件到controller/root/下

[root@controller~]# ll

total 8075368

-rw-------. 1 root root 1836 Dec 15 14:45 anaconda-ks.cfg

-rw-r–r--. 1 root root 4470079488 Oct 30 03:57 CentOS-7-x86_64-DVD-1804.iso

-rw-r–r--. 1 root root 3799093248 Oct 30 11:18 chinaskills_cloud_iaas.iso

将centos文件挂载到/opt/centos下,iaas文件挂载到/opt/openstack下

[root@controller~]# mount-o loop CentOS-7-x86_64-DVD-1804.iso/opt/centos/

mount:/dev/loop0 is write-protected, mounting read-only

[root@controller~]# mount-o loop chinaskills_cloud_iaas.iso/opt/openstack/

mount:/dev/loop1 is write-protected, mounting read-only

检查yum源

[root@controller~]# yum clean all&& yum repolist

安装http服务并在http默认文件中创建centos和openstack文件

[root@controller~]# yum install-y httpd

[root@controller~]# mkdir/var/www/html/centos

[root@controller~]# mkdir/var/www/html/openstack

将挂载的文件cp到http默认访问目录的文件中

centos文件

[root@controller~]#cp-rfv/opt/centos/*/var/www/html/centos/

iaas文件

[root@controller~]#cp-rfv/opt/openstack/*/var/www/html/openstack/

开启http服务

[root@controller~]# systemctl start httpd&& systemctl enable httpd

将controller节点http.repo文件改为http主机名地址

配置compute节点yum

#compute

[root@compute~]# cat/etc/yum.repos.d/http.repo

[centos]

name=centos

baseurl=

gpgcheck=0

enabled=1

[iaas]

name=iaas

baseurl=

gpgcheck=0

enabled=1

检查yum源

[root@controller~]# yum clean all&& yum repolist

#compute分两块空分区作为swift和cinder的分区

[root@compute~]# lsblk-l

[root@compute~]# fdisk/dev/sda

n建立新分区

p primary分区

w写入

[root@compute~]# lsblk-l

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 1.8T 0 disk

sda1 8:1 0 1G 0 part/boot

sda2 8:2 0 857.9G 0 part

centos-root 253:0 0 350G 0 lvm/

centos-swap 253:1 0 7.9G 0 lvm [SWAP]

centos-home 253:2 0 500G 0 lvm/home

sda3 8:3 0 100G 0 part

sda4 8:4 0 100G 0 part

双节点安装iaas-xiandian包(注意配置不能出错,出错后面可能有很多问题)

[root@controller~]# yum install-y iaas-xiandian

[root@compute~]# yum install-y iaas-xiandian

修改openrc.conf文件

INTERFACE_IP=##在那个节点就配置那个节点的IP

INTERFACE_NAME=##外网卡第二张网卡

##依据实际分区填写配置

BLOCK_DISK=sda3

OBJECT_DISK=sda4

接下来就是跑脚本完成openstack搭建

#controller和compute

iaas-pre-host.sh

跑完此脚本ctrl+D重新连接即可

#controller

iaas-instack-mysql.sh&& iaas-instack-keystone.sh&& iaas-instack-glance.sh

#controller和 compute

iaas-instack-nova-controller.sh&& iaas-instack-neutron-controller.sh

iaas-instack-nova-compute.sh&& iaas-instack-neutron-compute.sh

#controller

iaas-instack-dashboard.sh

安装完成后 登录dashboard页面

阅读剩余
THE END