Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3649700
  • 博文数量: 880
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 6155
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-11 09:12
个人简介

To be a better coder

文章分类

全部博文(880)

文章存档

2022年(5)

2021年(60)

2020年(175)

2019年(207)

2018年(210)

2017年(142)

2016年(81)

分类: LINUX

2020-04-27 16:44:40

修改grub:
quiet splash
  1. menuentry 'Deepin fail(LVM_deepin)' {
  2.     insmod part_msdos
  3.     insmod lvm
  4.     insmod ext2
  5.     insmod iso9660
  6.     set isofile="deepin-15.7Beta-amd64.iso"
  7.     set vgid='CPdmyk-Rl4I-k9G5-oGlg-ruI6-Cqr8-6AwfjG'
  8.     set lvid='qj4jcu-xYmn-pppM-rzj8-499m-eCP3-7Hj72u'
  9.     set uuid='02832644-4eb3-4023-8f77-45e888b9bea5'
  10.     set root='lvmid/$vgid/$lvid'
  11.     search --no-floppy --fs-uuid --set=root --hint='$root'  $uuid
  12.     loopback loop ($root)/home/deepin/$isofile
  13.     linux (loop)/live/vmlinuz.efi boot=live findiso=$isofile union=overlay memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal --
  14.     initrd (loop)/live/initrd.lz

因 systemd 在系统启动时需要熵信息,且内核在可用熵较少时会阻塞相应的调用,所以系统启动时可能挂起数分钟至数小时,直至随机子系统充分得到初始化( random: crng init done )。对于支持 RDRAND 指令的 amd64 系统,Debian 的内核已可以避免这个问题,因为内核默认将尝试使用该指令( CONFIG_RANDOM_TRUST_CPU )。

非 amd64 架构的系统和某些虚拟机可能需要从其它来源获取熵以保证快速启动。Debian 安装程序内部选择了 haveged 作为替代方案,在硬件熵不可用时,这可能是个可以使用的解决方案。在虚拟机上,请考虑经由 virtio_rng 将主机的熵转发至虚拟机中。

终于进安装界面了,方法是第一项install deepin ,删除“quiet splash”,加上ivrs=ioapic[32]=00:14.0 spec_store_bypass_disable=prctl iommu=soft,这三个参数,已安装完成。另安装完成后进系统启动项也需要加上上面三个参数,进系统后修改 /etc/default/grub文件 在GRUB_CMDLINE_LINUX_DEFAULT="在这里加内容" 里面添加上刚才的三个参数,这样每次开机直接按回车启动就可以了 记得update-grub来更新下grub的菜单以生效

由3.10升级到4.14内核后,启动系统random的初始化需要比较长的时间。通过dmesg | grep -I randdom 发现需要400多秒才能初始化完成。
dmesg | grep -i random
[    0.051406] random: get_random_bytes called from setup_net+0x33/0x120 with crng_init=0
[    0.637733] random: hwclock: uninitialized urandom read (8 bytes read)
[    0.821425] random: sh: uninitialized urandom read (8 bytes read)
[   11.923501] random: fast init done
[   13.111697] random: modprobe: uninitialized urandom read (8 bytes read)
[   20.464349] random: modprobe: uninitialized urandom read (8 bytes read)
[   20.475650] random: head: uninitialized urandom read (8192 bytes read)
[   23.335865] random: modprobe: uninitialized urandom read (8 bytes read)
[   28.286856] random: modprobe: uninitialized urandom read (8 bytes read)
[   28.747431] random: modprobe: uninitialized urandom read (8 bytes read)
[   33.718262] random: modprobe: uninitialized urandom read (8 bytes read)
[   33.736726] random: modprobe: uninitialized urandom read (8 bytes read)
[  429.269251] random: crng init done


所以一些应用程序在调用random的函数可能会阻塞。
通过调查发现有两个解决方案,内核的方式和用户态的方式
方案一:打入以下内核patch
内核的patch:
增加了config RANDOM_TRUST_CPU这个选项,默认此选择没有打开。
大致的意思是,此选项是信任cpu处理器的厂商,他们会产生没有危险用户的random的行为。也列举了反例,列举了美国制裁中国,中国决定自给自足CPU。凭什么就相信intel,不相信解放军控制的公司等

用户态的方案:
Haveged使用HAVEGE(HArdware Volatile Entropy Gathering and Expansion)来维护一个1M的随机字节池,
当/dev/random中的随机位供应低于设备的低水位时(/proc/sys/kernel/random/entropy_avail),这个随机字节池用于填充/dev/random。
容器里可以使用如下:
1 wget
2 rpm -ivh haveged-1.9.1-1.el7.x86_64.rpm
3 运行haveged -w 1024 -v 1

服务器可以使用:
yum install haveged -y
systemctl start haveged
systemctl enable haveged
————————————————
版权声明:本文为CSDN博主「xiaofeng_yan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaofeng_yan/java/article/details/101073770

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Install Fedora 31' --class red --class gnu-linux --class gnu --class os {
    linux /images/pxeboot/vmlinuz
    initrd /images/pxeboot/initrd.img
}
grub里面安装install增加,grub命令行下操作

It's a kernel bug that can happen with different kernel.

"apt-get install rng-tools" run as root in a terminal should work.


阅读(31824) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~