1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
#!/bin/bash
#
# Copyright (C) 2018 Karel Zak <kzak@redhat.com>
#
# This script makes a copy of relevant files from /sys and /proc.
# The files are useful for lscpu(1) regression tests.
#
progname=$(basename $0)
if [ -z "$1" ]; then
echo -e "\nusage: $progname <testname>\n"
exit 1
fi
TS_DUMP="$1"
TS_CMD_LSBLK=${TS_CMD_LSBLK:-"lsblk"}
#
# procfs
#
mkdir -p $TS_DUMP/proc
mkdir -p $TS_DUMP/proc/self
cp /proc/self/mountinfo ${TS_DUMP}/proc/self
cp /proc/swaps ${TS_DUMP}/proc/swaps
cp /proc/version ${TS_DUMP}/proc/version
#
# sysfs
#
mkdir -p $TS_DUMP/sys/{block,dev/block}
cp --no-dereference /sys/dev/block/* ${TS_DUMP}/sys/dev/block
cp --no-dereference /sys/block/* ${TS_DUMP}/sys/block
DEVS=$(find /sys/dev/block/ -type l)
for x in ${DEVS}; do
DEV="/sys/dev/block/$(readlink $x)"
mkdir -p ${TS_DUMP}/${DEV}
# attributes
for f in $(find ${DEV} -type f -not -path '*/trace/*' -not -path '*/uevent'); do
if [ ! -f ${TS_DUMP}/${f} ]; then
SUB=$(dirname $f)
mkdir -p ${TS_DUMP}/${SUB}
cp $f ${TS_DUMP}/$f 2> /dev/null
fi
done
# symlinks (slave, holders, etc.)
for f in $(find ${DEV} -type l -not -path '*/subsystem' -not -path '*/bdi'); do
if [ ! -f ${TS_DUMP}/${f} ]; then
SUB=$(dirname $f)
mkdir -p ${TS_DUMP}/${SUB}
cp --no-dereference $f ${TS_DUMP}/$f
fi
done
# device/ files
if [ -d ${DEV}/device/ ]; then
for f in $(find ${DEV}/device/ -maxdepth 1 -type f -not -path '*/uevent'); do
if [ ! -f ${TS_DUMP}/${f} ]; then
SUB=$(dirname $f)
cp $f ${TS_DUMP}/$f 2> /dev/null
fi
done
fi
done
function mk_output {
cols="$2"
name="$1"
$TS_CMD_LSBLK -o NAME,${cols} > ${TS_DUMP}/lsblk.${name}
}
#
# lsblk info
#
$TS_CMD_LSBLK -V &> ${TS_DUMP}/version
mk_output basic KNAME,MAJ:MIN,RM,SIZE,TYPE,MOUNTPOINT
mk_output vendor MODEL,VENDOR,REV
mk_output state RO,RM,HOTPLUG,RAND,STATE,ROTA,TYPE,PKNAME,SCHED
mk_output rw RA,WSAME
mk_output topo SIZE,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,RQ-SIZE
mk_output discard DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO
mk_output zone ZONED
tar zcvf lsblk-$TS_DUMP.tar.gz $TS_DUMP
rm -rf $TS_DUMP
echo -e "\nPlease, send lsblk-$TS_DUMP.tar.gz to util-linux upstream. Thanks!\n"
|