Жили-были древние славяне. И не знали они лука. А древние германцы знали. Ну, бывает. Узнали чуть раньше. Может, в какой-то момент подрезали через рецептики у римлян, будучи частью Римской Империи.
Древние германцы говорили на прагерманском языке, и, познакомившись с луком, назвали его на этом прагерманском языке примерно так - *laukaz. Оттуда у шведов сохранился "lök" ("репчатый лук"), у датчан "løg" (он же), у англичан "leek" ("лук-порей"), у немцев "Lauch" ("лук-порей", "зелёный лук"), а у голландцев "look" ("чеснок") - последние немного перепутали, правда. Видимо какой-нибудь протоголландец сказал "ну, лук, это вот та горькая гадость, которой можно травить клопов и злых духов", и его поняли немного неправильно.
Праславяне дружно заимствовали это слово у своих заклятых соседей, и получилось у них слово "лукъ".
Итого, что имеем по южным славянам:
- у болгар и македонцев это слово превратилось в "лук", и означает, внимание, - "лук" (в диалектах и чеснок тоже, видимо, так же рассуждали, как и голландцы), и ещё есть региональный вариант "див лук", который переводится как "дикий чеснок"
- у сербов и хорватов тоже "лук", а ещё есть "бели лук", то есть "чеснок". В пермских диалектах и у нас, кстати, встречалось сочетание "белый лук" в значении "чеснок". А обычный лук сербы могут называть "црни лук" или "црвени лук" (то есть "черный" или "красный"\"червоный").
По западным славянам:
- полабские, как самые ближайшие к германцам, сделали себе самое похожее на прагерманское *laukaz слово - "lauk", и это означало "чеснок"
- у чехов был "luk" (тоже "чеснок"), у поляков "luk" (на этот раз "лук-порей"), но эти слова давно и безнадёжно устарели
По восточным славянам:
- в древнерусском языке это был "лукъ", и сейчас это тоже "лук", впрочем, кому я это рассказываю - в основном, как раз восточным славянам. Так что с этим пунктом всё ясно.
Но восточные славяне имели неосторожность когда-то разделиться на три группы, и две из них, что находятся чуть западнее, в какой-то момент решили заимствовать слово для лука ещё раз.
На самом деле, ещё раньше, самыми первыми это сделали, конечно, поляки, словаки и чехи. Они перешли из православия в католичество под немецким влиянием, и от немцев же заново взяли себе название для лука. На этот раз не чисто германское, а исторически латинское.
Римский лучок "cēpulla" стал у немцев выглядеть как "Zwiebel", а от немцев пошёл к западным славянам в виде польского "cebula", чешского "cibule", словацкого "cibuľa". Тогда-то вариант "luk" у них и устарел. Остался только как оружие.
А следующей волной уже поляки стали распространять своё онемеченное влияние на западные земли восточных славян, и тогда в Малороссии случилась "цибуля", а в Белоруссии - "цыбуля". Однако украинский язык хранит память и о праславянском прошлом в ещё оставшемся слове "луковиця".