Sun Fire E25K domain In Recovery status. How to check if it is progressing

You ran showplatform in the system controller and the E25k domain shows the status In Recovery

Domain configurations:
======================
Domain ID Domain Tag Solaris Nodename Domain Status
A – – Powered Off
B – – Powered Off
C – – Powered Off
D – – Powered Off
E domain5 – In Recovery
F – – Powered Off
G – – Powered Off
H – – Powered Off
I – – Powered Off
J – – Powered Off
K – – Powered Off
L – – Powered Off
M – – Powered Off
N – – Powered Off
O – – Powered Off
P – – Powered Off
Q – – Powered Off
R – – Powered Off

To check the progress of why it is taking a long time to boot the domain, check the post process running

roo@systemcontrollern1:~ # ps -ef | grep post
sms-svc 5398 198 0 15:48:02 pts/2 0:00 grep post
sms-dsmd 27458 26817 39 15:34:33 ? 3:14 /opt/SUNWSMS/SMS1.6/bin/hpost -d E -Q

roo@systemcontrollern1:~ # truss -p 27458

Failure: The event flow is broken on solaris.setaoffice.com for the last 60min. Please follow the instructions.

ATTENTION, RMC LEVEL 1 AGENT: This ticket will be automatically worked by the Automation Bus. Pls do not take ownership until further notice.
Node : solaris.setaoffice.com
Node Type : Sun SPARC (HTTPS)
Severity : major
OM Server Time: 2015-04-01 14:37:24
Message : Failure: The event flow is broken on solaris.setaoffice.com for the last 60min. Please follow the instructions.
Msg Group : ITO
Application : HealthCheck
Object : OVO-agent
Event Type :
not_found

Instance Name :
not_found

Instruction : (Please carry out instructions in order and record output in ticket)

1) check if there is any maintenance ongoing for the respective system. Set an scheduled outage if yes.

2) check if the system is reachable – login to the server in question and ping the OVO management server. if not pingable, inform the second line or technical lead

3) if the system is reachable, generate a test alert on the node in question.

4) if the test alert is not received, do opcagt -kill; then remove temp queue files (/var/opt/OV/tmp/OpC/*q on Unix or on windows,
…\tmp\OpC\*q); then do opcagt -start on the system. Generate another test alert on the node in question.

5) if the the test alert is not received, refer the call to OVO monitoring support team.

Check which host is the HPOM manager and try to ping it

root@solaris:/ # /opt/OV/bin/ovconfget | grep OPC_PRIMARY_MGR
OPC_PRIMARY_MGR=hpommanager.omc.hp.com

root@solaris:/ # ping hpommanager.omc.hp.com
hpommanager.omc.hp.com is alive

Try also to use the tool bbcutil and check the status. If everything is also okay, the manager is having trouble reaching the managed host.

root@solaris:/ # bbcutil -ping https://hpommanager.omc.hp.com

https://hpommanager.omc.hp.com: status=eServiceOK
coreID=d2ebdec9-48ff-40ec-bf76-eb233981c3a0
bbcV=11.14.014 appN=ovbbccb appV=unknown version
conn=9 time=1199 ms

HPOM – SOL_mon is warning about a network interface

UXMON: genunix: [ID 408789 kern.warning] WARNING: ce1: fault detected external to device; service degraded

Node : solaris10_node1.setaoffice.com
Node Type : Sun SPARC (HTTPS)
Severity : major
OM Server Time: 2015-06-23 09:22:58
Message : UXMON: genunix: [ID 408789 kern.warning] WARNING: ce1: fault detected external to device;

service degraded
Msg Group : OS
Application : SOL_mon
Object : hardware
Event Type :
not_found

Instance Name :
not_found

Instruction : “The Fault Management agent has identified a HW

or OS related problem with the severity presented by the ticket.
The problem(s) can be viewed and managed with the command – fmdump
To get a better understanding of the problem and on how to resolve it, locate the event that generated
the ticket in the syslog file /var/adm/messages, a URL will be found (http://sun.com/msg/xxx-nnnn-yy),
follow the link using your Oracle portal account for instructions.”

Check /var/adm/messages for mentions about this network interface

root@solaris10_node1:/ # grep ce1 /var/adm/messages
Jun 23 10:20:59 solaris10_node1 genunix: [ID 408789 kern.warning] WARNING: ce1: fault detected external to device; service degraded
Jun 23 10:20:59 solaris10_node1 genunix: [ID 451854 kern.warning] WARNING: ce1: xcvr addr:0x01 – link down

Also check dmesg

root@solaris10_node1:/ # dmesg | grep ce1
Jun 22 14:26:02 solaris10_node1 genunix: [ID 408789 kern.warning] WARNING: ce1: fault detected external to device; service degraded
Jun 22 14:26:02 solaris10_node1 genunix: [ID 451854 kern.warning] WARNING: ce1: xcvr addr:0x01 – link down
Jun 22 14:26:05 solaris10_node1 genunix: [ID 408789 kern.notice] NOTICE: ce1: fault cleared external to device; service available
Jun 22 14:26:05 solaris10_node1 genunix: [ID 451854 kern.notice] NOTICE: ce1: xcvr addr:0x01 – link up 10 Mbps half duplex
Jun 22 14:26:11 solaris10_node1 genunix: [ID 408789 kern.warning] WARNING: ce1: fault detected external to device; service degraded
Jun 22 14:26:11 solaris10_node1 genunix: [ID 451854 kern.warning] WARNING: ce1: xcvr addr:0x01 – link down
Jun 22 14:26:12 solaris10_node1 genunix: [ID 408789 kern.notice] NOTICE: ce1: fault cleared external to device; service available
Jun 22 14:26:12 solaris10_node1 genunix: [ID 451854 kern.notice] NOTICE: ce1: xcvr addr:0x01 – link up 10 Mbps half duplex
Jun 23 10:20:59 solaris10_node1 genunix: [ID 408789 kern.warning] WARNING: ce1: fault detected external to device; service degraded
Jun 23 10:20:59 solaris10_node1 genunix: [ID 451854 kern.warning] WARNING: ce1: xcvr addr:0x01 – link down

If you don’t need monitoring, configure /var/opt/OV/conf/OpC/dmsg_mon.cfg to suppress this alarm.

How to remove files with strange characters

To remove files that contain symbols and unknown characters, list the files with ls -li and take note of the inode number

root@linux:~ # ls -li
total 4420
2495260 -rw——- 1 root root 13810 Jan 28 2011 ????!
2495249 -rw——- 1 root root 13810 Jan 28 2011 ????!

Run the find command and see if it shows the desired file

root@linux:~ # find . -inum 2495260
./????!

And then complete the find command to search, find and remove the file.

root@linux:~ # find . -inum 2495260 -exec rm -i {} \;
rm: remove regular file `./20\36406\b!’? y

Error when updating iLO2 in HP Proliant

Tried to update iLO2 but when I ran the scexe file it gave me an error message
<blockquote>root@suse10:/tmp # ./CP025666.scexe

FLASH_iLO2 v1.12 for Linux (Aug 31 2009)
Copyright 2009 Hewlett-Packard Development Company, L.P.
Firmware image: ilo2_227.bin

ERROR: Make sure hp Lights-Out driver is installed and loaded. Also, execute the utility as ‘root’. []

Component XML file: CP025666.xml
CP025666.xml reports firmware version 2.27

***Flash firmware using channel interface has failed. Try direct flash next…

***Note: This operation will flash the firmware on the
iLO 2 in this server with version “2.27”.
This operation requires following condition(s) be met:
1. iLO 2 Security Override Switch must be set.
Continue (y/N)? y
Trying to reset V850E
Trying to reset V850E
Trying to reset V850E
Trying to reset V850E
-</blockquote>
The solution was to extract the .bin file and then update iLO 2 through the web interface with the .bin file
<blockquote>root@suse10:/tmp # ./CP025666.scexe –unpack=/tmp
CP025666.xml
flash_ilo2
ilo2_227.bin
README.TXT</blockquote>

Changing HP Proliant serial number

If you want to do it online, with some tool under Linux, it can’t be done.

Unless you have an HP Proliant 100 series, you need to enter the RBSU and change the serial number.

Setsys Utility for HP ProLiant 100 series G5 and G6 Servers

Always remember to change the serial number back when replacing the system board.

Setup a SVM mirror in Solaris 10

In a Solaris server there are two local disks

root@solaris10:~ # echo | format
Searching for disks…done

AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@0,600000/pci@0/scsi@1/sd@0,0
1. c0t1d0
/pci@0,600000/pci@0/scsi@1/sd@1,0
Specify disk (enter its number): Specify disk (enter its number):

Specify disk (enter its number): 1

Verify partition table

selecting c0t1d0
[disk formatted]

FORMAT MENU:
disk – select a disk
type – select (define) a disk type
partition – select (define) a partition table
current – describe the current disk
format – format and analyze the disk
repair – repair a defective sector
label – write label to the disk
analyze – surface analysis
defect – defect list management
backup – search for backup labels
verify – read and display labels
save – save new disk/partition definitions
inquiry – show vendor, product and revision
volname – set 8-character volume name
!<cmd> – execute , then return
quit
format> p

Display disk partitions

PARTITION MENU:
0 – change `0′ partition
1 – change `1′ partition
2 – change `2′ partition
3 – change `3′ partition
4 – change `4′ partition
5 – change `5′ partition
6 – change `6′ partition
7 – change `7′ partition
select – select a predefined table
modify – modify a predefined partition table
name – name the current table
print – display the current table
label – write partition map and label to the disk
!<cmd> – execute , then return
quit
partition> p

Partition 0 is /
Partition 1 is swap
Partition 3 is /var
Partition 7 is where metadevice state database

Current partition table (original):
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 2061 – 4121 20.00GB (2061/0/0) 41945472
1 swap wu 4122 – 10716 64.00GB (6595/0/0) 134221440
2 backup wm 0 – 14086 136.71GB (14087/0/0) 286698624
3 var wm 0 – 2060 20.00GB (2061/0/0) 41945472
4 unassigned wm 10717 – 11026 3.01GB (310/0/0) 6309120
5 unassigned wm 11027 – 11233 2.01GB (207/0/0) 4212864
6 usr wm 11234 – 11749 5.01GB (516/0/0) 10501632
7 unassigned wm 11750 – 11755 59.62MB (6/0/0) 122112

partition>

Checking metadevice state database

root@solaris10:~ # metadb
metadb: solaris10: there are no existing databases

In the example below I’m going to create three copies on partition 7 of disk c0t1d0

root@solaris10:~ # metadb -a -f -c3 /dev/dsk/c0t1d0s7

Checking metadevice state database

root@solaris10:~ # metadb
flags first blk block count
a u 16 8192 /dev/dsk/c0t1d0s7
a u 8208 8192 /dev/dsk/c0t1d0s7
a u 16400 8192 /dev/dsk/c0t1d0s7

Creating the metadevice with disk partitions

root@solaris10:~ # metainit -f d12 1 1 c0t1d0s0
d12: Concat/Stripe is setup
root@solaris10:~ # metainit -f d22 1 1 c0t1d0s1
d22: Concat/Stripe is setup
root@solaris10:~ # metainit -f d32 1 1 c0t1d0s3
d32: Concat/Stripe is setup

Metadevices created

root@solaris10:~ # metastat -p
d32 1 1 c0t1d0s3
d22 1 1 c0t1d0s1
d12 1 1 c0t1d0s0

Setting up Solaris Volume Manager mirror.

root@solaris10:~ # metainit d10 -m d12
d10: Mirror is setup

Setting up to boot with the mirror

root@solaris10:~ # metaroot d10

Setting up the rest of metadevices as mirror as well

root@solaris10:~ # metainit d30 -m d32
d30: Mirror is setup

root@solaris10:~ # metainit d20 -m d22
d20: Mirror is setup

Checking the status

root@solaris10:~ # metastat -p
d20 -m d22 1
d22 1 1 c0t1d0s1
d30 -m d32 1
d32 1 1 c0t1d0s3
d10 -m d12 1
d12 1 1 c0t1d0s0

root@solaris10:~ # shutdown -y -g0 -i0

After the reboot, check if the server is using the metadevice using df -h

Then create the metadevices for the other side of the mirror and attach them

metainit -f d11 1 1 c0t0d0s0
metainit -f d21 1 1 c0t0d0s1
metainit -f d31 1 1 c0t0d0s3

metattach d10 d11
metattach d20 d21
metattach d30 d31

Create the database replicas on the other disk as well

metadb -a -f -c3 /dev/dsk/c0t0d0s7

qla2xxx Abort command issued — 1 1a1a0f1 2003 1a1a0f2 2002

Update your Suse 10 SP4 and HBA firmware that your server is running

Feb 12 08:36:43 suse10sp4 kernel: qla2xxx 0000:15:00.0: scsi(2:16:0): Abort handler timed out — 1a1a0f1 2002.
Feb 12 08:36:43 suse10sp4 kernel: qla2xxx 0000:15:00.0: scsi(2:16:0): Abort command issued — 1 1a1a0f1 2003.
Feb 12 08:36:53 suse10sp4 kernel: qla2xxx 0000:15:00.0: scsi(2:16:0): Abort handler timed out — 1a1a0f2 2002.
Feb 12 08:36:53 suse10sp4 kernel: qla2xxx 0000:15:00.0: scsi(2:16:0): Abort command issued — 1 1a1a0f2 2003.

Receiving the message Error code: ssl_error_bad_mac_alert when connecting to HP Proliant’s iLO 3

I was receiving the message Error code: ssl_error_bad_mac_alert while connecting to a HP Proliant BL680 G7 with iLO 3 version 1.16

Secure Connection Failed

An error occurred during a connection to 172.22.250.149. SSL peer reports incorrect Message Authentication Code. (Error code: ssl_error_bad_mac_alert)

CP014002.scexe – iLO 3 version 1.20
CP022551.scexe – iLO 3 version 1.80

To solve this problem, update iLO 3 first to version 1.20 and then to version 1.80

root@linux:/tmp # ./CP022551.scexe

FLASH_iLO3 v1.09 for Linux (Jan 23 2013)
(C) Copyright 2002-2013 Hewlett-Packard Development Company, L.P.
Firmware image: ilo3_180.bin
Current iLO 3 firmware version 1.20; Serial number ILOBRC0411JYB

Component XML file: CP022551.xml
CP022551.xml reports firmware version 1.80
This operation will update the firmware on the
iLO 3 in this server with version 1.80.
Continue (y/N)?y
Current firmware is 1.20 (Mar 14 2011 )
Firmware image is 0x801664(8394340) bytes
Committing to flash part…
******** DO NOT INTERRUPT! ********
Flashing completed.
Attempting to reset device.
Succeeded.
***** iLO 3 reboot in progress (may take up to 60 seconds.)
***** Please ignore console messages, if any.

iLO 3 reboot completed.
root@linux:/tmp #

Updating packages on SuSE 11

Updating Suse 11. Verify available repositories

root@suse11:~ # zypper repos
# | Alias | Name | Enabled | Refresh
–+————————————————–+————————————————–+———+——–
1 | SUSE-Linux-Enterprise-Server-11-SP3 11.3.3-1.138 | SUSE-Linux-Enterprise-Server-11-SP3 11.3.3-1.138 | Yes | No

Register the server if not registered

root@suse11:~ # suse_register -d 3 –r -a regcode-sles=1122A99C843798 -a email=emerson@setaoffice.com

If a server is registered with Suse, a lot more repositories are available

root@suse11:~ # zypper repos
# | Alias | Name | Enabled | Refresh
—+————————————————–+————————————————–+———+——–
1 | SUSE-Linux-Enterprise-Server-11-SP3 11.3.3-1.138 | SUSE-Linux-Enterprise-Server-11-SP3 11.3.3-1.138 | Yes | No
2 | nu_novell_com:SLE11-SP1-Debuginfo-Pool | SLE11-SP1-Debuginfo-Pool | No | Yes
3 | nu_novell_com:SLE11-SP1-Debuginfo-Updates | SLE11-SP1-Debuginfo-Updates | No | Yes
4 | nu_novell_com:SLE11-SP2-Debuginfo-Core | SLE11-SP2-Debuginfo-Core | No | Yes
5 | nu_novell_com:SLE11-SP2-Debuginfo-Updates | SLE11-SP2-Debuginfo-Updates | No | Yes
6 | nu_novell_com:SLE11-SP3-Debuginfo-Pool | SLE11-SP3-Debuginfo-Pool | No | Yes
7 | nu_novell_com:SLE11-SP3-Debuginfo-Updates | SLE11-SP3-Debuginfo-Updates | No | Yes
8 | nu_novell_com:SLE11-Security-Module | SLE11-Security-Module | No | Yes
9 | nu_novell_com:SLES11-Extras | SLES11-Extras | No | Yes
10 | nu_novell_com:SLES11-SP1-Pool | SLES11-SP1-Pool | No | Yes
11 | nu_novell_com:SLES11-SP1-Updates | SLES11-SP1-Updates | No | Yes
12 | nu_novell_com:SLES11-SP2-Core | SLES11-SP2-Core | No | Yes
13 | nu_novell_com:SLES11-SP2-Extension-Store | SLES11-SP2-Extension-Store | No | Yes
14 | nu_novell_com:SLES11-SP2-Updates | SLES11-SP2-Updates | No | Yes
15 | nu_novell_com:SLES11-SP3-Extension-Store | SLES11-SP3-Extension-Store | No | Yes
16 | nu_novell_com:SLES11-SP3-Pool | SLES11-SP3-Pool | Yes | Yes
17 | nu_novell_com:SLES11-SP3-Updates | SLES11-SP3-Updates | Yes | Yes

Listing all available updates

root@suse11:~ # zypper lu
Loading repository data…
Reading installed packages…
S | Repository | Name | Current Version | Available Version | Arch
–+——————–+———————————-+————————–+————————–+——-
v | SLES11-SP3-Updates | Mesa | 9.0.3-0.17.1 | 9.0.3-0.27.2 | x86_64
v | SLES11-SP3-Updates | Mesa-32bit | 9.0.3-0.17.1 | 9.0.3-0.27.2 | x86_64
v | SLES11-SP3-Updates | MozillaFirefox | 17.0.4esr-0.10.42 | 24.7.0esr-0.8.2 | x86_64

Upgrading a single package. In this case I’m updating ntp

root@suse11:~ # zypper up ntp
Loading repository data…
Reading installed packages…
Resolving package dependencies…

The following package is going to be upgraded:
ntp

1 package to upgrade.
Overall download size: 464.0 KiB. After the operation, additional 2.0 KiB will be used.
Continue? [y/n/?] (y): y
Retrieving package ntp-4.2.4p8-1.24.1.x86_64 (1/1), 464.0 KiB (1.6 MiB unpacked)
Retrieving delta: ./rpm/x86_64/ntp-4.2.4p8-1.22.1_1.24.1.x86_64.delta.rpm, 30.0 KiB
Retrieving: ntp-4.2.4p8-1.22.1_1.24.1.x86_64.delta.rpm [done]
Applying delta: ./ntp-4.2.4p8-1.22.1_1.24.1.x86_64.delta.rpm [done]
Installing: ntp-4.2.4p8-1.24.1 [done]
Additional rpm output:
warning: /etc/ntp.conf created as /etc/ntp.conf.rpmnew
Updating etc/sysconfig/ntp…
Updating etc/sysconfig/syslog…

Upgrade everything available

root@suse11:~ # zypper up
Loading repository data…
Reading installed packages…

The following NEW packages are going to be installed:
libtevent0-32bit python-m2crypto

The following packages are going to be upgraded:
Mesa Mesa-32bit MozillaFirefox MozillaFirefox-branding-SLED MozillaFirefox-translations a2ps aaa_base apparmor-docs apparmor-parser apparmor-utils augeas-lenses autofs autoyast2
autoyast2-installation bash bash-doc bind-libs bind-libs-32bit bind-utils binutils blktrace checkmedia coreutils coreutils-lang cpupower crash crash-sial cups cups-client cups-libs
cups-libs-32bit curl dbus-1 dbus-1-32bit dbus-1-x11 elilo ethtool facter fastjar file file-32bit fontconfig fontconfig-32bit glib2 glib2-lang glibc glibc-32bit glibc-devel glibc-i18ndata
glibc-locale glibc-locale-32bit gnome-power-manager gnome-power-manager-lang gnome-session gnome-session-lang gpg2 gpg2-lang grub gstreamer-0_10-plugins-good gstreamer-0_10-plugins-good-lang
gvfs gvfs-backends gvfs-fuse gvfs-lang hal hal-32bit hplip-hpijs hwinfo ipmitool iproute2 irqbalance kdump kernel-default kernel-default-base kernel-default-devel kernel-firmware kernel-source
kpartx krb5 krb5-32bit ksh lcms libMagickCore1 libapparmor1 libaugeas0 libblkid1 libblkid1-32bit libcurl4 libcurl4-32bit libdrm libdrm-32bit libfprint0 libfreebl3 libfreebl3-32bit libgcc_s1
libgcc_s1-32bit libgcrypt11 libgcrypt11-32bit libgio-2_0-0 libgio-2_0-0-32bit libglib-2_0-0 libglib-2_0-0-32bit libgmodule-2_0-0 libgmodule-2_0-0-32bit libgnutls26 libgnutls26-32bit
libgobject-2_0-0 libgobject-2_0-0-32bit libgomp1 libgthread-2_0-0 libgthread-2_0-0-32bit libgvfscommon0 liblcms1 liblcms1-32bit libldap-2_4-2 libldap-2_4-2-32bit libldb1 liblzo2-2
libmysqlclient_r15 libopenssl0_9_8 libopenssl0_9_8-32bit libpixman-1-0 libpixman-1-0-32bit libpng12-0 libpng12-0-32bit libpoppler-glib4 libpoppler5 libpulse-browse0 libpulse-mainloop-glib0
libpulse0 libpulse0-32bit libpython2_6-1_0 libpython2_6-1_0-32bit libqt4 libqt4-32bit libqt4-qt3support libqt4-qt3support-32bit libqt4-sql libqt4-sql-32bit libqt4-sql-mysql libqt4-x11
libqt4-x11-32bit libreadline5 libsmbclient0 libsmbclient0-32bit libsnmp15 libsoftokn3 libsoftokn3-32bit libstdc++6 libstdc++6-32bit libtalloc2 libtalloc2-32bit libtasn1 libtasn1-3
libtasn1-3-32bit libtdb1 libtdb1-32bit libtevent0 libtiff3 libtiff3-32bit libudev0 libudev0-32bit libuuid1 libuuid1-32bit libwbclient0 libwbclient0-32bit libxml2 libxml2-32bit libxml2-python
libxslt libxslt-32bit libzypp linux-kernel-headers logrotate lsscsi lvm2 mailx makedumpfile man-pages mcelog mdadm microcode_ctl mkinitrd mozilla-nspr mozilla-nspr-32bit mozilla-nss
mozilla-nss-32bit multipath-tools mutt nfs-client nfs-doc nscd ntp openldap2-client openssh openssh-askpass openssl openssl-certs pam pam-32bit pam-doc perl-Bootloader perl-apparmor
poppler-tools postfix pulseaudio pulseaudio-esound-compat pulseaudio-lang pulseaudio-module-x11 pulseaudio-utils puppet python python-base python-pywbem python-xml readline-doc
release-notes-sles rpcbind rsh ruby samba samba-32bit samba-client samba-client-32bit sblim-sfcb sg3_utils sles-admin_en-pdf sles-deployment_en-pdf sles-installquick_en-pdf sles-manuals_en
sles-security_en-pdf sles-storage_en-pdf sles-tuning_en-pdf snmp-mibs star sudo supportutils suse-build-key suseRegister tcsh timezone udev util-linux util-linux-lang uuid-runtime vino vino-lang
wget xinetd xkeyboard-config xorg-x11-Xvnc xorg-x11-driver-input xorg-x11-driver-video xorg-x11-libX11 xorg-x11-libX11-32bit xorg-x11-libXext xorg-x11-libXext-32bit xorg-x11-libXfixes
xorg-x11-libXfixes-32bit xorg-x11-libXp xorg-x11-libXp-32bit xorg-x11-libXrender xorg-x11-libXrender-32bit xorg-x11-libXt xorg-x11-libXt-32bit xorg-x11-libXv xorg-x11-libXv-32bit xorg-x11-libs
xorg-x11-libs-32bit xorg-x11-server xorg-x11-server-extra yast2 yast2-bootloader yast2-ldap-client yast2-network yast2-pkg-bindings yast2-samba-client yast2-slp-server yast2-sound yast2-storage
yast2-storage-lib yelp yelp-lang zsh zypper zypper-log

The following package needs additional customer contract to get support:
libmysqlclient_r15

286 packages to upgrade, 2 new.
Overall download size: 454.6 MiB. After the operation, additional 27.4 MiB will be used.

Follow

Get every new post delivered to your Inbox.

Join 3,062 other followers

%d bloggers like this: