安装时:
sudo apt-get install \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual
我正进入(状态:
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
我发现其他人也遇到了类似的问题:apt-get update mdadm 可怕的警告
因此我按照以下说明进行操作:
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
然后:
update-initramfs -u
但输出是:
update-initramfs: Generating /boot/initrd.img-4.10.0-30-generic
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
lsb_release -a
LSB Version: core-9.20160110ubuntu5-amd64:core-9.20160110ubuntu5-noarch:security-9.20160110ubuntu5-amd64:security-9.20160110ubuntu5-noarch
Distributor ID: Ubuntu
Description: Ubuntu 17.04
Release: 17.04
Codename: zesty
vim /etc/mdadm/mdadm.conf
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR root
# definitions of existing MD arrays
# This configuration was auto-generated on Thu, 10 Aug 2017 15:23:15 +0000 by mkconf
/etc/fstab
LABEL=cloudimg-rootfs / ext4 defaults 0 0
/var/swap.1 swap swap defaults 0 0
我认为这是在我添加以下内容之后开始发生的:
/var/swap.1 swap swap defaults 0 0
我还需要做些什么吗?
我在 Vagrant 的帮助下运行虚拟机。
更新 1
我发现了另一个与我类似的问题”:https://askubuntu.com/questions/834903/i-dont-have-a-raid-but-get-the-warning-mdadm-conf-defines-no-arrays
我补充道:
ARRAY <ignore> devices=/dev/sda1
由于我没有/dev/sda
独立的,所以我在最后添加了 1。
Filesystem Size Used Avail Use% Mounted on
udev 473M 0 473M 0% /dev
tmpfs 97M 3.1M 94M 4% /run
/dev/sda1 19G 4.8G 15G 26% /
tmpfs 483M 0 483M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 483M 0 483M 0% /sys/fs/cgroup
vagrant_ 384G 48G 337G 13% /vagrant
vagrant_www_ 384G 48G 337G 13% /vagrant/www
tmpfs 97M 0 97M 0% /run/user/1000
我这样做对吗?这有什么用?
警告已经消失。
答案1
此警告很正常。请忽略它。
update-initramfs
需要确定启动系统需要哪些内核模块。在这种情况下,它会检查是否需要 RAID 模块,方法是运行以mdadm
检查根文件系统是否位于 RAID 阵列上。由于您根本没有任何 RAID 阵列,因此mdadm
会打印警告 —— 但这是可以接受的,因为update-initramfs
已经找到了它需要知道的信息。
答案2
关于您的更新,您应该使用/dev/sda
。/dev/sda1
指的是磁盘分区,而/dev/sda
指的是物理磁盘本身。 尝试运行该lsblk
工具并根据您发布的输出判断df -h
,您应该得到类似以下内容:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 19G 0 disk
└─sda1 8:1 0 19G 0 disk /
RAID 阵列可以分成单独的分区,因此它们在功能上被视为与物理设备相同。
答案3
如果您和我一样,会尝试保留无警告的日志。我会在任何脚本中添加以下内容,因为警告mdadm.conf
可能会导致其他人认为该脚本存在错误。
grep "ARRAY devices" /etc/mdadm/mdadm.conf >/dev/null || echo "ARRAY devices=/dev/sda" | sudo -A tee -a /etc/mdadm/mdadm.conf >/dev/null;
它按照您在“更新 1”中描述的方式进行操作,但是以一种简单易行的方式进行设置,然后忘记它。
第一个短语悄悄地检查mdadm.conf
文件中是否有任何阵列设备。如果没有定义阵列设备,则执行下一个短语;如果已定义阵列设备,则立即退出
。||
中间的乐句与背景文字相呼应。
将|
设置文本通过管道传输到tee
命令。
如果 ASK_PASS 服务正在运行,则该sudo -A
短语将以 root 身份自动运行,否则将暂停以等待用户输入。tee
命令tee -a
附加将配置文本发送到文件末尾和控制台。
这些>/dev/null
行吞噬了详细的输出。
答案4
我在 Debian 9 更新后遇到了这个错误
/etc/mdadm/mdadm.conf 没有定义数组。
首先我进行检查:update-initramfs -u
其次我在根 shell 中写入此内容 grep "ARRAY devices" /etc/mdadm/mdadm.conf >/dev/null || echo "ARRAY devices=/dev/sda" | sudo -A tee -a /etc/mdadm/mdadm.conf >/dev/null;
第三,我再次检查 update-initramfs -u
shell 中没有错误
然后我检查了 mdam.conf kate /etc/mdadm/mdadm.conf
解决方案
此配置由 mkconf 于 2018 年 3 月 30 日星期五 13:01:54 +0200 自动生成
阵列设备=/dev/sda