بایگانی دسته: لینوکس

مشکل پارتیشن boot با فرمت btrfs و kernel panic

در اوبونتو ۱۶٫۰۴ یک باگ وجود داره که زمانی که شما boot را از فرمت btrfs انتخاب می کنید، در برخی از دفعات بوت با kernel panic مواجه می شید. این موضوع شاید تو توزیع‌های دیگه هم باشه (من فرصت آزمایش روی بقیه را نداشتم).

شرح مشکل

مشکل اینه که اگه boot روی btrfs باشه و این فایل سیستم در زمان بود دچار مشکل بشه، حتی یه مشکل ساده مثل unclean بسته شدن، دیگه initrd نمی تونه بارگذاری بشه و در نتیجه دچار kernel panic می شه..

راه حل

تا اطلاع ثانوی پوشه boot را در پارتیشن جدایی در نظر بگیرید و از همان فرمت های قدیمی از دسته ext ها استفاده کنید.

حذف آی پی اول سیستم

شاید این مشکل براتون پیش آمده باشه که چندین آدرس آی پی روی یک اینترفیس داشته باشید. کارت شبکه یک آی پی اصلی می گیره و بقیه را به عنوان secondary می شناسه.

# ip address show dev enp0s31f6
۲: enp0s31f6: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether c8:5b:76:81:bc:90 brd ff:ff:ff:ff:ff:ff
inet 192.168.13.1/24 scope global enp0s31f6
valid_lft forever preferred_lft forever
inet 192.168.13.10/24 scope global secondary enp0s31f6
valid_lft forever preferred_lft forever

اگه تصمیم بگیرید آی پی اول را با دستور زیر حذف کنید، بقیه آی پی ها هم حذف می شوند:

ip address delete 192.168.13.1/24 dev enp0s31f6

برای جلوگیری از این کار کافیه مقدار promote_secondaries برابر یک قرار بدید

echo 1 > /proc/sys/net/ipv4/conf/eth0/promote_secondaries

و یا

sysctl net.ipv4.conf.eth0.promote_secondaries=1

تفاوت auto و allow-hotplug در فایل interfaces

سالهاست این allow-hotplug را توی تنظیمات پیشفرض دبیان می بینم و تنبلی مانع می شد که یک بار برای همیشه تفاوت اصلی و فاحش allow-hotplug با auto را در بیارم. تنها کاری که کردم اینه که به فراموشی سپردمش و فرض کردم نیست 😉

یه اتفاق خوب باعث شد، بالاخره از صندوق خونه بکشمش بیرون. یکی لیست پستی دبیان بود و یکی به روز رسانی manual فایل interfaces.

ادامه خواندن تفاوت auto و allow-hotplug در فایل interfaces

معرفی Oakvnc

بعد از مدتها بالاخر وقت کردم آمادش کردم. خیلی وقت بود که احساس می کردم نیاز به یک سرویس remote desktop دارم. مشکلم با سرویس vnc موجود سخت بودن استفاده ازشون بود. بالاخره یک package آماده کردم که استفاده از vncserver را ساده می کند. یک فایل کانفیگ و یک سری اسکریپت که می تونه موقع بالا آمدن سیستم اجازه دسترسی بهم بده.

توضیحات بیشتر را می تونید از اینجا مطالعه کنید. و بسته قابل نصب برروی دبیان و اوبونتو را هم می توانید از اینجا دریافت کنید.

ادغام history چندین ترمینال

خیلی از ما در هنگام کار با سیستم ویا سرور چندین ترمینال باز می کنیم تا چند کار را همزمان جلو ببریم و یا چندین موضوع و یا log فایل را زیر نظر بگیریم. اتفاقی که همیشه بروز می کند، پس از اتمام کار و بستن ترمینال ها تاریخچه خط فرمان آخرین ترمینال را در اختیار خواهیم داشت و بقیه تاریخچه ها توسط تاریخچه آخرین ترمینال بازنویسی می شوند.

برای جلوگیری از این کار کافیست متغیر محیطی PROMPT_COMMAND را به صورت زیر در فایل etc/bash.bashrc/ تعریف کنید

export PROMPT_COMMAND=’history -a’

کافیست ترمینال را ببندید و مجدد باز نمایید. از این پس هر دستوری که وارد می کنید، بلافاصله به history اضافه می گردد.

منبع: سیوک

مشکل نداشتن صدا در Debian Jessie

برای اولین بار در طول ۱۱ سال کار بالینوکس مشکل صدا داشتم با دبیان. در انجمن ها چرخی زدم ولی به نتیجه نرسیدم. در آخر با ویکی دبیان مشکلم حل شد.

بد ندیدم به شما هم توصیه می کنم سری به این ویکی بزنید 😉
البته یه راهمنمای خوب هم اینجا است که دسته بندی خوبی داره و از بسته های مورد نیاز سر در می یارید.

تغییر اندازه (resize) دسته ای عکس ها

چند روز پیش یه دسته عکس گرفته بودم که قصد داشتم روی وب قرار بدم. نیاز بود که عکس ها را از اندازه اصلی به شکلی که هم اندازه و هم حجم مناسبی باشه در بیارم. برای این کار اومد از ابزاری به نام convert استفاده کردم، که بسیار ساده با یک دستور، کلیه عکس های یک پوشه را resize کرد.

در مرحله اول بسته های مورد نیاز را باید نصب کنید

aptitude install imagemagick

و بعد از اون کافیه وارد پوشه عکس ها شده و از دستور convert برای تغییر اندازه استفاده کنید. در مثال زیر من دو عکس داره می خواهم اندازه آنها را به ۶۰۰×۸۰۰ تغییر دهم. چون ممکن است سایز عکس ها استاندارد نباشد، در این مثال من فقط از یک مقیاس یعنی x800 استفاده کردم

$ ls
۲۰۱۴۱۱۰۶_۲۳۴۱۵۴.jpg  ۲۰۱۴۱۱۰۶_۲۳۴۵۰۵_LLS.jpg

$ convert *.jpg -resize x800 newname.jpg
$ ls
۲۰۱۴۱۱۰۶_۲۳۴۱۵۴.jpg  ۲۰۱۴۱۱۰۶_۲۳۴۵۰۵_LLS.jpg  newname-0.jpg  newname-1.jpg

همانطور که ملاحظه می کنید برنامه convert خود نامی که من به آن داده ام با اضافه کردن شماره متمایز کرده است.

منبع: وبلاگ سیوک

 

نحوه رسیدن به یک فایل، Hardlink و Softlink

بسیاری از دانشجویان درک درستی از نحوه دسترسی به یک فایل و یا نحوه آدرس دهی آن ندارند.  علاوه برآن مباحثی مانند نحوه عملکرد Hardlink و Softlink برایشان مبهم است. در این سند قصد دارم تا این موضوع را تا جای ممکن شفاف کنم. ساختاری که در زیر برای شما تشریح خواهد شاختار فایل سیستم دسته EXT می باشد.

قبل از هر چیز لازم هست که چندین مفهوم و اصطلاح شفاف شود. در زیر توضیح مختصری در مورد هر کدام آورده ام:

Superblock: در هر فایل سیستم شامل توضیحات و مشخصات اصلی آن فایل سیستم است. یکی از مهمترین این ویژگی ها اولین شماره Inode مربوط به این فایل سیستم است که در یک سیستم یونیکسی این شماره ، شماره Inode مربوط به روت یا “/” است.
محتوای Superblock  را می توانید با دستور زیر ملاحظه کنید.

tune2fs  -l /dev/sda1

Inode: ساختمان داده ای است در که مشخصات مربوط به هر فایل به غیر از نام آن را نگه می دارد. مانند اندازه، آدرس داده، مجوز‌های دسترسی و …
برای مشاهده محتویات inode یک فایل می توانید از دستور زیر استفاده کنید.

stat filename.ext

directory entry: هر دایرکتوری مانند یک فایل معمولی دارای Inode و بخش داده است . با این تفاوت که در بخش داده هر دایرکتوری نام و Inode فایل‌ها و پوشه‌های دیگر داخل آن فهرست شده است. به این فهرست directory entry می گویند.

نحوه دسترسی به فایل

زمانی که شما تصمیم می گیرید فایلی به نام home/behrad/test.txt/ را باز کنید، برای پیدا کردن آن سیستم مراحل زیر را انجام  می دهد.

۱- ابتدا به Superblock مراجعه می کند و آدرس اولین Inode سیستم یا همان “/” را به دست می آورد.
۲- سپس در Directory entry های آن به دنبال آدرس Inode پوشه home می گردد
۳- پس از پیدا کردن home در directory entry مربوط به پوشه home به دنبال آدرس Inode پوشه behrad می گردد.
۴- پس از آن در Directory entry پوشه behrad شماره Indoe فایل test.txt را پیدا می کند و از طریق آن به داده ها دسترسی پیدا می کند

ext2fs

اگه موضوع  درست فهمیده باشید، درک Hardlink و softlink کار سختی نیست و تنها با دوشکل زیر گویای هر موضوع هست.

Hardlink

hardlink

Softlink

softlink

منبع
The Linux Documentation Project: Filesystem
Concept of Symlink and hardlink in Linux